home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Communication / Citadel_BBS / Docs / network3.man < prev    next >
Text File  |  1998-06-24  |  115KB  |  2,501 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                          C I T A D E L - 8 6
  16.  
  17.                                 V3.41
  18.  
  19.                             NETWORK MANUAL
  20.                             
  21.                         Copyright 1989 - 1991
  22.  
  23.                              by Hue, Jr.
  24.  
  25.                         C-86 Test System Sysop
  26.  
  27.                                91Dec08
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.                              TABLE OF CONTENTS
  75.  
  76.      I. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 1
  77.      II. Compatibility Ishes . . . . . . . . . . . . . . . . . . . . . . 1
  78.      III. Functionality  . . . . . . . . . . . . . . . . . . . . . . . . 2
  79.           III.1 Normal User Capabilities . . . . . . . . . . . . . . . . 2
  80.           III.2 Aides and Citadel-86's net . . . . . . . . . . . . . . . 3
  81.           III.3 Sysop Capabilities . . . . . . . . . . . . . . . . . . . 4
  82.                 III.3.a Node Creation  . . . . . . . . . . . . . . . . . 4
  83.                 III.3.b Node Administration & Member Nets  . . . . . . . 5
  84.                   III.3.b.i Special Access Strings . . . . . . . . . . . 5
  85.                   III.3.b.ii Baud setting  . . . . . . . . . . . . . . . 5
  86.                   III.3.b.iii Condensed Names  . . . . . . . . . . . . . 5
  87.                   III.3.b.iv Download Toggle . . . . . . . . . . . . . . 6
  88.                   III.3.b.v External Dialers   . . . . . . . . . . . . . 6
  89.           III.3.b.vi Fast Transfers
  90.                   III.3.b.vii New Node ID  . . . . . . . . . . . . . . . 6
  91.                   III.3.b.viii Kill System . . . . . . . . . . . . . . . 6
  92.                   III.3.b.ix Change Local/LD setting . . . . . . . . . . 6
  93.                   III.3.b.x Change Name  . . . . . . . . . . . . . . . . 6
  94.                   III.3.b.xi Network Passwords . . . . . . . . . . . . . 6
  95.                   III.3.b.xii Room List  . . . . . . . . . . . . . . . . 7
  96.                   III.3.b.xiii Member Nets . . . . . . . . . . . . . . . 7
  97.                   III.3.b.xiv Spine Settings . . . . . . . . . . . . . . 7
  98.                 III.3.c User Administration  . . . . . . . . . . . . . . 7
  99.                 III.3.d Normal Shared rooms  . . . . . . . . . . . . . . 8
  100.                 III.3.e File Requests  . . . . . . . . . . . . . . . . . 8
  101.                 III.3.f Sending Files  . . . . . . . . . . . . . . . . . 9
  102.                 III.3.g Priority Net Mail  . . . . . . . . . . . . . . . 9
  103.                 III.3.h Until Net Sessions . . . . . . . . . . . . . . . 9
  104.                 III.3.i Miscellaneous Net Menu Options . . . . . . . . .10
  105.                 III.3.j Advanced Room Sharing Options: Routing . . . . .10
  106.                 III.3.k Advanced Room Sharing Options: Virtual Rooms . .15
  107.                 III.3.l Advanced Room Sharing Options: Vortices  . . . .16
  108.      IV. Networking and events . . . . . . . . . . . . . . . . . . . . .17
  109.         IV.1 Member Nets . . . . . . . . . . . . . . . . . . . . . . . .17
  110.         IV.2 Normal Network Sessions . . . . . . . . . . . . . . . . . .18
  111.         IV.3 Anytime Network Sessions  . . . . . . . . . . . . . . . . .18
  112.         IV.4 Until-Done Network Sessions . . . . . . . . . . . . . . . .20
  113.      V. Domains in Citadel-86. . . . . . . . . . . . . . . . . . . . . .20
  114.         V.1 What are Domains?. . . . . . . . . . . . . . . . . . . . . .20
  115.         V.2 So how does Citadel-86 utilize Domains?. . . . . . . . . . .21
  116.         V.3 Practical Notes and Procedures for all systems . . . . . . .21
  117.         V.4 Practical Notes and Procedures for Domain Servers. . . . . .23
  118.         V.5 RoutMail . . . . . . . . . . . . . . . . . . . . . . . . . .25
  119.         V.6 Costing. . . . . . . . . . . . . . . . . . . . . . . . . . .26
  120.         V.7 NodesX.* . . . . . . . . . . . . . . . . . . . . . . . . . .27
  121.         V.8 Technical Notes. . . . . . . . . . . . . . . . . . . . . . .27
  122.      VI. STadel mail routing . . . . . . . . . . . . . . . . . . . . . .27
  123.           VI.1 Outgoing mail routing . . . . . . . . . . . . . . . . . .28
  124.           VI.2 Incoming route mail . . . . . . . . . . . . . . . . . . .29
  125.           VI.3 STadel considerations . . . . . . . . . . . . . . . . . .30
  126.           VI.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . .30
  127.      VII. CTDLCNFG.SYS Parameters. . . . . . . . . . . . . . . . . . . .30
  128.      Appendix A: Other room-based Networks . . . . . . . . . . . . . . .31
  129.      Appendix B: Temporary Files . . . . . . . . . . . . . . . . . . . .32
  130.      Appendix C: Main C86Net . . . . . . . . . . . . . . . . . . . . . .32
  131.      Appendix D: RoutMail.Exe  . . . . . . . . . . . . . . . . . . . . .33
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.      I. Introduction
  143.         This manual talks about the functionality and usage of the Citadel-86
  144.      Network. This is not a technical discussion of the transmission protocols
  145.      used in the Citadel-86; for that discussion, please consult NETHACK3.MAN.
  146.  
  147.         We want to discuss what the Citadel-86 Network is capable of, and what
  148.      you, the sysop, must do to use these capabilities.  As a relevant part of
  149.      this discussion, we'll also tell you what it can't do.
  150.  
  151.         As a useful acronym/identifier, we are going to refer to the Citadel-86
  152.      Network as C86Net throughout this documentation.
  153.  
  154.      II. Compatibility Ishes
  155.         So, let's start with the vague topic of what we're compatible with.
  156.      First the bad news: No, we do not talk directly to FidoNet.  Nor do we
  157.      talk to a number of other networks, such as USENET, BITNET, etc, although
  158.      there are utilities available that may allow you to hook into most nets
  159.      through some programming effort on your part.
  160.  
  161.     C86net was designed, first, as a learning experience (so beware!), and,
  162.      second, with room-based systems in mind.  Rather than attempting to use
  163.      something designed with other purposes in mind, we decided to have fun.
  164.  
  165.         It is not impossible to talk to those networks in the future through
  166.      the judicious use of the #event parameter and the labors of a captive
  167.      programmer, and, in fact, the ability to talk to USENET is available.  
  168.      Since Paul Gauthier @Cerebral Cortex has disappeared, we're not sure
  169.      who you should contact.  If you're interested in trying to connect to
  170.      another net, investigate the MSGADD and MSGOUT utilities (see UTIL3.MAN).
  171.  
  172.         Now move to the good news.  Since STadel, as originally maintained by
  173.      David Parsons of Pell, and now maintained by a cast of thousands, was
  174.      originally derived from Citadel-86, it has maintained compatibility with
  175.      C86Net, so you should be able to network with STadels and its derivatives
  176.      in your area.  These derivatives include Fortress and Fnordadel.
  177.  
  178.         Amiga Citadel-68K, as maintained by Stallion (aka Jay Johnson) of The
  179.      Phoenix, since it was also derived from Citadel-86, is compatible with
  180.      C86Net.
  181.  
  182.         NeoCitadel, as maintained by Hue, Sr. of SuperComp III, is compatible
  183.      with C86Net.
  184.  
  185.     Citadel-86e, maintained by Farokh Irani, can also network with
  186.      Citadel-86 systems, although not all facilities are implemented.
  187.  
  188.         We should mention that when we say that software is compatible with
  189.      C86Net, this means that a minimal network session can take place between
  190.      the two pieces of BBS software.  Not all of the software mentioned here
  191.      supports all of the functionality of C86Net.  Consult the documentation
  192.      of the respective software for details.
  193.  
  194.  
  195.  
  196.  
  197.                                    -1-
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.      III. Functionality
  205.         So let's talk about what C86Net is capable of (this is the same as
  206.      discussing what Citadel-86 is capable of).  First, to simplify this
  207.      discussion, let's set up an "inheritance hierarchy" of users.  The
  208.      bottom-most level will have certain capabilities on the network, the next
  209.      level will have those capabilities plus several of their own, etc.
  210.      Here's what we'll use:
  211.  
  212.               Sysops
  213.                 |
  214.               Aides
  215.                 |
  216.            Normal Users
  217.  
  218.         Each level, starting with the Normal Users, adds more capabilities.
  219.      So we'll start with the lowest level, describing these capabilities.
  220.  
  221.      III.1 Normal User Capabilities
  222.         Normal users have three capabilities on the network.
  223.  
  224.         First, they may send Mail> to users on other nodes of the network.
  225.      C86Net Mail> can be sent by any user with network privileges to any local
  226.      node, or if the user has Long Distance (LD) credits, to any LD node.
  227.  
  228.         The Mail> is entered by going to the Mail> room and typing .Enter
  229.      Net-Message at the room prompt.  The user is then asked for the name of
  230.      the system.  A '?' will elicit a list of systems that Mail may be sent to;
  231.      an empty line will abort the .EN command.  If the user enters a legal node
  232.      name, then the user is asked for the name of a user on the target system.
  233.      An empty line will again abort the .EN command; any other input will be
  234.      assumed to be the name of a user on the target system.  The user may then
  235.      enter their message.
  236.  
  237.         In Section V we banter about the Sysop and Domains in C86Net.  However,
  238.      we need to mention this here: the user can explicitly route mail to a
  239.      domain.  The mechanism is to use .EN and when prompted for a system name,
  240.      type
  241.  
  242.         <system name> _ <domain name>
  243.  
  244.         Your system will not attempt to verify the existence of the system at
  245.      all; it will merely follow procedures mentioned below in Section V in the
  246.      attempt to get the Mail to the specified domain.
  247.  
  248.         Due to both the volatility of the user bases of room-based systems and
  249.      space considerations, user names cannot be validated during message entry.
  250.      Therefore, Citadel-86 will try to validate the user name during the
  251.      network session.  If the user has entered an invalid name for the target
  252.      system, he will be notified via Mail> from Citadel of his/her mistake.
  253.  
  254.         A normal user's second ability is to enter messages in shared rooms.
  255.      Shared rooms will be discussed in full in Section III.3; to summarize,
  256.      they are rooms in which messages from your system can be sent to other
  257.      systems, and messages from those system can be received. Normally, a user
  258.      uses the command .Enter Net-Message to enter a message that should be sent
  259.      to rooms on other systems; a normal Enter message will cause the message
  260.      not to be networked to other systems (however, a shared room can be set
  261.  
  262.  
  263.                                    -2-
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.      up so that all messages are networked -- see Section III.3).
  271.  
  272.         A shared room can be recognized by the blood-shot eyes of the sysop,
  273.      and also by the fact that rather than having a '>' at the room prompt, it
  274.      has a ')'.  A room that has a ':' for a room prompt is also shared, and
  275.      also has a directory attached to it (which has nothing to do with the
  276.      network).
  277.  
  278.         In both of the above cases, a normal message may be converted into a
  279.      net message (when in an appropriate room) when saving the message by
  280.      typing 'N' rather than 'S'.  A non-net message can be changed into a
  281.      net-message by Aides who use the Pause-D facility and select the 'N'
  282.      option from that menu.  Citadel-86 will then duplicate the message, make
  283.      it into a net message, save it, and delete the original.  While this takes
  284.      a little extra space in the system, it ensures the message will be netted.
  285.  
  286.          The third normal user ability is Local Mail> Forwarding.  This
  287.      feature is useful in densely networked areas where users tend to have
  288.      accounts on several systems, but do not have time to call all the systems
  289.      daily.
  290.  
  291.          Local Mail> Forwarding allows the user to specify that Mail> sent
  292.      to the user locally should be forwarded to another system.  Mail> sent
  293.      to the user will then be converted to C86Net Mail>, with one copy being
  294.      sent to the user's account on the system specified, and one copy being
  295.      left in the Mail> on the local system, in case the user should login at
  296.      a propitious moment.  The user may optionally specify the Mail to be 
  297.      forwarded to a different alias on another system.
  298.  
  299.          In order for a user to have access to this feature, the user must
  300.      must have net privileges.  If the user specifies forwarding to a LD
  301.      system, the user must have LD credits, or the Mail> will not be forwarded
  302.      (thus making forwarded Mail> their financial responsibility, rather than
  303.      the sender's).
  304.  
  305.          Mail> Forwarding is accessed via the .Enter Configuration
  306.      Address command.  The user will be asked for a system to forward his/her
  307.      Mail> to.  If they wish, they may use a domain-specified system.  A
  308.      blank line will cancel Mail> Forwarding.  Then the user will be prompted
  309.      for an alias to deliver the Mail> to.
  310.  
  311.          Mail from the Sysop to Citadel will never be Forwarded.  However,
  312.      unlike earlier versions of Citadel-86, incoming Network Mail will be
  313.      forwarded.
  314.  
  315.  
  316.      III.2 Aides and Citadel-86's net
  317.         The Aides of a Citadel-86 system gain only one extra capability that a
  318.      Normal User doesn't have, and this is called the Local Systems
  319.      Announcement. This is the ability to send a Mail> item via the network to
  320.      a user on all systems which are local to your system.  This is useful for
  321.      informing all local sysops of an important development.
  322.  
  323.         An Aide does this by going to the Mail> room and using the .Enter
  324.      Net-Message command.  When the system asks for a node name to send the
  325.      Mail> to, the Aide should then answer with '&L'.  The Mail> that the Aide
  326.      subsequently enters will then be sent to the user that they indicated on
  327.      all local systems.
  328.  
  329.                                    -3-
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.      III.3 Sysop Capabilities
  339.         Sysop capabilities in Citadel-86 regarding the network are numerous,
  340.      and we will organize them into sections.  Note that Domain Management
  341.      is in Section V, not in this Section (III).
  342.  
  343.      III.3.a Node Creation
  344.         Before anything useful can take place on the network, you must have
  345.      other systems (also known as nodes) to call. Therefore, we'll begin with
  346.      adding systems to your netlist.  This netlist is called the "primary"
  347.      nodelist (see Section V for information on what a "secondary" node list
  348.      is.)  We add systems to a primary nodelist via the Network Menu, which is
  349.      available to sysops from the Sysop menu as the 'N' option.  Once you have
  350.      entered the Network Menu, type 'A' to add systems.  Your system should
  351.      begin by asking for the name of the system to add, which you should type
  352.      in.  Next it will ask for its Node Id.  It is important that you get this
  353.      right.  The format of the node Id is
  354.  
  355.       <Country Code> <Area code> <Phone #>
  356.  
  357.         Country Code is the country code of your system's location, which
  358.      should be listed in COUNTRY.MAN; US is the United States and CA is Canada.
  359.      Area code is the area code of the system, and Phone # is the number used
  360.      to call that system under normal circumstances.  Citadel-86 will usually
  361.      use the node Id for calling other systems, which is why it's important to
  362.      get this right. However, if you are in a special circumstance where using
  363.      the node Id to call a system will simply not work (such as an intra-campus
  364.      phone system), there are ways around the problem.  See Section III.3.c.
  365.  
  366.         An example of a valid node Id would be
  367.  
  368.      US (612) 470-9635
  369.  
  370.         Notice the use of punctuation.  Punctuation is stripped out of node
  371.      Ids when dialing other systems, but punctuation should still be used
  372.      conservatively.
  373.  
  374.         You will then be asked the baud rate of the new system.  Usually, you
  375.      should answer with the highest baud rate that the new system supports; if
  376.      your system doesn't support their highest speed, then your system will
  377.      dial that system at the highest speed that your own system supports.
  378.      Sometimes, though, you will have to answer this question with a lower baud
  379.      rate, due to the fact that on some lines the network won't work at high
  380.      speeds.  We are not entirely sure why, although we suspect that it's
  381.      simply the phone system's fault.
  382.  
  383.         Finally, you'll be asked if the system is local or not.  This question
  384.      also affects how your modem will dial this system during networking, and
  385.      here's how:
  386.  
  387.         If you answer that this is a local node, then the modem will be dialed
  388.      using
  389.  
  390.         <#callOutPrefix><phone#><#callOutSuffix>
  391.  
  392.  
  393.  
  394.  
  395.                                    -4-
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.         (If you don't know what #callOutPrefix and #callOutSuffix are, please 
  403.      review the Citadel-86 Installation Manual, or see Section V of this
  404.      manual.) Essentially, we just dial the system as a local call.  But if
  405.      you answer that the system is not local, then the modem dials with
  406.  
  407.         <#callOutPrefix>1<area code><phone#><#callOutSuffix>
  408.  
  409.         This is just a normal LD call in the United States.  All of this can
  410.      be overridden, as stated above: see Section III.3.b.i.
  411.  
  412.      III.3.b Node Administration & Member Nets
  413.         Nothing stays the same, including nodes on your netlist.  Therefore,
  414.      there is an editing ability for nodes.  You may access this via the
  415.      Network Menu. Once at the Network Menu prompt, type 'E' for Edit Node.
  416.      The system will ask for the name of the node to edit, so type the name of
  417.      the node that you need.  Once you type a valid name, you will be given a
  418.      short summary of that node's condition, and then a Node Edit prompt will
  419.      show up.  From this prompt you may do the following:
  420.  
  421.       A - Override the dialing format described in III.3.b
  422.       B - Change this system's baud rate
  423.       C - Change the condensed name of the system
  424.       D - Download Toggle for this system
  425.       E - External Dialer access for this node
  426.       F - Fast Transfers
  427.       I - Change this system's Id
  428.       K - Kill this system from the net list
  429.       L - Change the Local setting
  430.       M - Change which nets that this system is a member of
  431.       N - Change this system's name
  432.       O - OtherNet toggle
  433.       P - Activate security measures for this node
  434.       R - View which rooms you are sharing with this node
  435.       S - Spine settings
  436.  
  437.         Let's take these one at a time.
  438.  
  439.      III.3.b.i Special Access Strings
  440.         'A' from the Node Editing prompt lets you change the Access string for
  441.      calling this node.  If you give this string any value, the procedure for
  442.      calling this node will change to the following:
  443.  
  444.         <#callOutPrefix><access string><#callOutSuffix>
  445.  
  446.      which makes it very easy to construct special dialing sequences for nodes
  447.      in special situations.  Use this with some caution.  If you want to
  448.      use an external dialing program (for instance, to use PC Pursuit to
  449.      call another node), see later in this section.
  450.  
  451.      III.3.b.ii Baud setting
  452.         'B' allows you to reset the baud rate for this system.
  453.  
  454.      III.3.b.iii Condensed Names
  455.         'C' allows you to change the "condensed" name of the system.  A 
  456.      'condensed' name is a name of your choosing of no more than 2 letters, 
  457.      which is nothing more than a useful shorthand for you.  You may use this 
  458.      shorthand in almost any situation in which you'd type the name of the 
  459.      system, such net mail, Dial out, etc.
  460.  
  461.  
  462.                                    -5-
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.      III.3.b.iv Download Toggle
  470.     'D' allows you to toggle the download flag for this system.  Ordinarily
  471.      set to ON, if it's turned off then this system may NOT download files
  472.      from your system during network sessions.
  473.  
  474.      III.3.b.v External Dialers
  475.          Citadel-86 supports (V3.32), in a rudimentary way, external dialers.
  476.      An external dialer is a program capable of using some method other than
  477.      normal dialing to call another system. A well known example is PC Pursuit.
  478.  
  479.          To tell your installation that in order to reach some system on its
  480.      primary nodelist it must use an external dialer, use the 'E' option while
  481.      editing that node.  The system should then ask if you want to set up this
  482.      node to be dialed via an external program.  If you answer Yes, the system
  483.      will then prompt you for information on dialout.
  484.  
  485.          This "information" is system dependent.  For Citadel-86, the informa-
  486.      tion should be the command line which will cause the external dialer to
  487.      try to make connections with this node.  I'm sorry, but at this point
  488.      you're on your own as to what goes in this string -- it'll depend on how
  489.      the external dialer you have works, etc.  And, no, I'm not writing any
  490.      external dialers for PC Pursuit, Starlink, etc., either, and I don't have
  491.      any to distribute. Citadel-86 will simply send your command line to DOS
  492.      for execution.
  493.  
  494.         The external dialer you use should leave the system with carrier high
  495.      and ready to network (i.e., connection has been made with the system
  496.      you want to talk to) if it succeeds, otherwise not have carrier.
  497.  
  498.         If anyone develops or otherwise finds an external dialer for Citadel-86
  499.      or Citadel-68k which works well, a few sysops might be really really happy
  500.      if you mention it in Sysop Stuff.
  501.  
  502.      III.3.b.vi Fast Transfers
  503.     Citadel-86 can be configured to use one of the popular compression
  504.      programs and Zmodem to transfer net messages (resulting in big savings,
  505.      we think, of time) on a system by system basis.
  506.  
  507.      III.3.b.vi.1 Who is this appropriate for?
  508.     Using this option is appropriate for systems connecting to LD systems
  509.      for purposes of transferring large numbers of messages during one session
  510.      per night or less.  Large numbers may mean as few as 30 or 40 messages.
  511.      In reality, it depends more on the mass of messages -- i.e., how many
  512.      bytes are being transferred either way a night.
  513.  
  514.     While there is no reason this option cannot be used for local
  515.      networking, the benefits do not seem to be as clear.  There are also costs
  516.      inherent in this scheme which may cause this scheme not to be appropriate
  517.      for local netting.
  518.  
  519.     Systems wishing to use this scheme should not be using slow h/w, and
  520.      should have a full complement of memory available since the compression
  521.      programs are run while Citadel-86 is in memory (of course).
  522.  
  523.     If you have doubts about being able to run a compression program, use
  524.      Outside Commands to experiment with both command lines (Compress and
  525.      Decompress).
  526.  
  527.      III.3.b.vi.2 Administration
  528.     First we'll deal with administrative issues.
  529.  
  530.     Once the appropriate version of Citadel-86 (& Ease, if you use Ease)
  531.      has been obtained, these steps must be followed:
  532.  
  533.      1) [optional -- only if you have Zmodem configured into your system] Put
  534.      on your Citadel command line the option "zmodem=<character>", where
  535.      <character> is the character a user would select in order to use Zmodem
  536.      to transfer a file or messages.  For most systems this will be 'z', so
  537.      the command line would look like this:
  538.  
  539.     ctdl zmodem=z ...
  540.  
  541.      If you don't have Zmodem configured into your system, DON'T WORRY.
  542.      Citadel-86 will happily use one of the internal protocols to transfer the
  543.      message file, instead.  However, the internal protocols are not as fast
  544.      as Zmodem, so ...
  545.  
  546.      2) Setting up Compression.  If you use Ease, this is easy.  Using Ease,
  547.      simply go to the Misc Menu, select Compression utilities, and then select
  548.      each compression utility you support and you'll find the menu in these
  549.      windows contains a new entry line for Compressing FIles.  This is just
  550.      like Decompression -- simply put in the command line needed to compress a
  551.      file.
  552.  
  553.     Care should be taken when configuring the compression command lines
  554.      since compression utilities often have incompatible versions (at least,
  555.      old versions won't decompress files generated with new versions).
  556.  
  557.     I am not completely familiar with all of the utilities, but configuring
  558.      those that you have set up for the Decompression is certainly a good idea
  559.      (you'll find later you can select on a system by system basis which
  560.      compression method to use).  The various Compression command lines I'm
  561.      aware of (not all have been tested):
  562.  
  563.     lha u        (LHA/LHArc)
  564.     arc u        (SEA ARC)
  565.     pkzip -u     (PK's Zip)
  566.     zoo -update  (Zoo)
  567.  
  568.     Citadel-86 will attempt compression by running a command composed of the
  569.      compression command line followed by the name of the file to update or
  570.      create with the compressed files followed by the wildcard "*.msg".
  571.  
  572.     If you don't use Ease, then you should know that the files in question
  573.      are DEARC.SYS, DELZH.SYS, DEZIP.SYS, and DEZOO.SYS.  The Compression line
  574.      is the third* line of the file (not the second).
  575.  
  576.      3) Also make sure you have Decompression command lines setup for those
  577.      methods you'll support!!!!  Or you won't be able to receive Fast Transfers
  578.      from other systems.
  579.  
  580.      4) Now bring your system up.  Go to the Net Menus, and select a system to
  581.      edit that you think you'll be doing Fast Transfers with (or will be testing
  582.      with, or whatever).  The option to turn on Fast Transfers is 'F'.  When
  583.      you select it, it will be toggled on and you will be asked to select which
  584.      Compression Method to use; only those that you configured will be
  585.      displayed for your selection.  At this point you should know which method
  586.      you plan to use with the other system (usually LHA, but make sure the
  587.      other system is aware of the method you intend to use).
  588.  
  589.     If you want to turn Fast Transfers off, just select 'F' again.  If any
  590.      messages happen to be 'cached', (see below) don't worry, they'll still be
  591.      transferred, using the old message transfer methods.
  592.  
  593.      III.3.b.vi.3 What this does to your computer
  594.  
  595.      1) In your #NETAREA directory you'll find a new directory named NETCACHE.
  596.      In it you'll find more directories with numerical names.  They will
  597.      correspond to your node slots, and are only created when you select Fast
  598.      Transfers for a given system.  I.e., don't be surprised to see huge gaps
  599.      between numerical names, such 4 12, 44.  These directories are not deleted
  600.      if Fast Transfers are turned off for any system (but may be when you
  601.      delete a system if it had Fast Transfers on).  Don't worry about lack of
  602.      deletion.
  603.  
  604.      2) In those subdirectories you'll find "cached" messages from time to time.
  605.      A cached message file (either <number>.msg or V<number>.msg) contains most
  606.      (or all) of the messages bound for the system represented by the directory
  607.      for a single room.  A room with no messages outbound for the system will
  608.      typically not have a file present.  You may also find a compressed file
  609.      (named NETMSG.<something>), which should contain all of the *.MSG files
  610.      in this directory.
  611.  
  612.      3) During networking for normal rooms ...
  613.  
  614.      a) If your system is doing the calling, first it will cache and compress
  615.      all messages meant for the target system.
  616.  
  617.      b) If your system is receiving the call, caching and compression will take
  618.      place during the network session.  Hopefully, this won't take too long. If
  619.      you think it does and the incoming system(s) calls at a consistent time,
  620.      see the #event described below.
  621.  
  622.     If you are using virtual rooms (so few of us are), virtual rooms are
  623.      cached to all systems sharing them upon receipt of the virtual room.  The
  624.      reason this is not done with normal rooms is to keep us from caching
  625.      messages later deleted by our Aides.  It would be a code nightmare to
  626.      decide we need to recache* some messages just because a message was
  627.      deleted, so we simply delay caching until we need to transfer the messages
  628.      (or at least think we'll need to transfer them).
  629.  
  630.      III.3.b.vi.4 Error Handling
  631.     If someone is not configured for Fast Transfers when you are, don't*
  632.      panic.  No messages should have been lost; instead, Citadel-86 simply
  633.      grabs the cache files and sends them as a normal shared room.
  634.  
  635.     However, if for some reason the decompression is not working correctly,
  636.      or Zmodem isn't working, stuff could get screwed up.  A little cautious
  637.      testing beforehand, if you can manage it (say, with a local system you
  638.      don't share much with at the moment, or a spare computer of your own),
  639.      won't hurt at all.
  640.  
  641.      III.3.b.vi.5 Related #events
  642.     See below in the special section on network #events.
  643.  
  644.      III.3.b.vi.6 Peculiarities
  645.  
  646.     1) Mail is NEVER sent this way, either direct or route mail.
  647.  
  648.     2) Shared rooms whose names are 0 length (a rare but not unknown bird)
  649.      are not shared in this manner; they are sent by themselves as a normal
  650.      shared room.
  651.  
  652.     3) If you are calling out, Fast Transfers will not occur unless the
  653.      other system is local or you are setup to be a spine for that system.
  654.  
  655.     4) If your system is calling another LD system but has no outgoing
  656.      messages in any room, Fast Transfers will not occur from your side, but
  657.      will from the other.  Don't panic if you see that happen.
  658.  
  659.      III.3.b.vii New Node ID
  660.         'I' allows you to change the Node Id of this system.  When you use this
  661.      option, you will be asked if you are changing the meaning of this node
  662.      entirely, that is, you are making this record refer to another system
  663.      entirely. This is for the purpose of Mail forwarding and room sharing,
  664.      so answer this correctly.
  665.  
  666.      III.3.b.viii Kill System
  667.         'K' causes this system to be deleted from your node list.
  668.  
  669.      III.3.b.ix Change Local/LD setting
  670.         'L' lets you change the Local/LD setting for this node.
  671.  
  672.      III.3.b.x Change Name
  673.         'N' allows you to change the name of this node.
  674.  
  675.      III.3.b.xi Network Passwords
  676.         'P' allows you to setup security arrangements between this node and
  677.      yourself.  Security arrangements consist of two passwords, one of which
  678.      applies to your system, while the other applies to the node that you are
  679.      editing.  If neither your system nor the node that you are editing are
  680.      using passwords, then security is not active.  If either system is using
  681.      them, then security is active, and passwords must match during networking
  682.      in order for room sharing to be successful.
  683.  
  684.  
  685.                                    -6-
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.      III.3.b.xii Room List
  693.         'R' allows you to see a list of the rooms that you are currently
  694.      sharing with this node.
  695.  
  696.      III.3.b.xiii Member Nets
  697.         'M' allows you to change the nets that this system is associated with.
  698.      Citadel-86 allows you to associate any node on your node list with 0 or
  699.      more nets, up to 31.  When a node is created, it is automatically
  700.      associates with net 1 as a matter of convenience.
  701.  
  702.         The utility to assign a node to different nets is that, in conjunction
  703.      with the #event parameter (covered in Section III.3.k), you may then
  704.      network with different nodes at different times and/or days. This gives
  705.      you a lot of flexibility to participate in different nets at different
  706.      times. If necessary, you can assign a node to more than 1 network.
  707.  
  708.         If you take a node off of all the nets, then the node is disabled,
  709.      which means that Mail> cannot be sent to that node.
  710.  
  711.      III.3.b.xiv Spine Settings
  712.         'S' lets you set the Spine settings.  The meaning of Spine in C86Net
  713.      depends on whether the system is LD or not.
  714.  
  715.         First, LD systems.  Normally, a C86Net node, when calling a local
  716.      system, will after transferring data to the receiving node, will perform
  717.      a 'role reversal' with the other system, which allows the receiver to
  718.      transfer messages to the caller, thus saving time during networking.
  719.      However, due to the existence of Long Distance charges, role reversal is
  720.      not performed on Long Distance calls.  The Spine settings lets you
  721.      override this behavior.  When you elect to use the 'S' command while
  722.      editing a node, the system will first ask if you wish to be a Spine for
  723.      the system you are editing.  If you answer Yes, Citadel-86 will perform
  724.      role reversal with this system during calls.  If you answer No, then the
  725.      Citadel-86 will ask if that system will be a Spine for you, and if you
  726.      answer Yes, then your system will never call that LD system again,
  727.      instead relying on it to role reversal during calls.
  728.  
  729.         If the system you will be dealing with is local to you, and you set it
  730.      as a spine (or yourself), then the system designated as a spine is
  731.      guaranteed to try for one successful network call during each network
  732.      session, even if the caller has no valid reason for calling.  This allows
  733.      the existence of systems with bad modems in the network.
  734.  
  735.         There is an alternative, perhaps better, method for editing nodes.
  736.      See Appendix D for details.  This is important, since the above does
  737.      NOT cover all flags associated with nodes, but the option covered in
  738.      Appendix D does.
  739.  
  740.      III.3.c User Administration
  741.         For any user to use the room sharing or net Mail> abilities, they must
  742.      have "Network privileges".  There are two ways that Network privileges are
  743.      assigned. The first is via the CTDLCNFG.SYS parameter #NewNetPrivs, which
  744.      allows you to decide whether or not new users automatically have net
  745.      privileges (see Section V).  The second method is via the Network menu.
  746.      The Network Menu is available to sysops from the Sysop menu as the 'N'
  747.      option.  Once you have entered the Network Menu, type 'N' to set Network
  748.      privileges and follow the prompts.  (The same capability also exists in
  749.      the User Admin sysop menu.)
  750.  
  751.                                    -7-
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.         If you (or other users) wish to send Mail> via the net to LD systems,
  759.      then you must assign one or more LD credits to the appropriate accounts.
  760.      You do this from the Network Menu as well.  Type 'C' at the Network Menu
  761.      prompt and follow the prompts.  Each Mail> message to a LD system costs
  762.      exactly one credit; there is no accounting on a byte count basis.
  763.  
  764.      III.3.d Normal Shared rooms
  765.         Sysops have the ability and responsibility of administering shared
  766.      rooms; this section covers normal shared rooms.
  767.  
  768.         A shared room, as noted above, is a room which will send to and receive
  769.      from other systems certain messages which were entered in the room.
  770.      Normal shared rooms transmit their messages using the point-to-point model
  771.      of networking.  For each system that you are sharing this room with, your
  772.      system will call that system and send only the net-messages that were
  773.      originally entered on this system.  There is no routing for normal shared
  774.      rooms.  If you have a pressing need for routed rooms, see Section III.3.i.
  775.  
  776.         To make a shared room, go to (or create) the room that you wish to make
  777.      a shared room, and edit the room.  At the room editing prompt you should
  778.      type 'S', which is the command for Shared rooms.  The system should now
  779.      ask if you want to make the room a shared room, so answer 'Y'.  Now you
  780.      will be asked to enter the systems that you wish to share this room with.
  781.      If the room was already a shared room, then you do NOT have to re-enter
  782.      any systems that you are already sharing this room with, but only the
  783.      systems which were not sharing the room before.
  784.  
  785.         Once you have finished entering the systems to share this room with
  786.      you will be asked to enter the names of the systems to remove from room
  787.      sharing.  Answer appropriately.
  788.  
  789.         Finally, you will be asked if you want this room to be an autonet room.
  790.      If you answer 'Y', then the system will ask if only people with net
  791.      privileges will have their messages automatically made into net messages,
  792.      or if everyone will have this privilege.  If you answer that only
  793.      people with net privileges will have the ability, then only they can
  794.      enter net messages in the room, and all other messages will be normal.
  795.      If you answer that everyone's messages should be converted, then that's
  796.      what will happen, regardless of their privilege setting.
  797.  
  798.         In order to have a successful shared room, all systems with which you
  799.      wish to share this room with must have a room with an identical name, and
  800.      must know that you want to share this room.  There is no such thing as
  801.      involuntary sharing of rooms.
  802.  
  803.      III.3.e File Requests
  804.         Sysops have the ability to request file(s) from other systems.  In
  805.      order to do this, you must know the name of the room and the name of the
  806.      file(s) that you wish from the other system.
  807.  
  808.         You may access this facility from the Net Menu by pressing 'R'.  You
  809.      are then asked for the system's name, the name of the room on the system
  810.      that has the file(s) that you want, and the name of the file(s).  You may
  811.      specify an ambiguous name for files, but your specification must be one
  812.      that the target system understands, rather than what your system
  813.      understands, so this may vary.
  814.  
  815.  
  816.  
  817.                                    -8-
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.         You will then be asked for a location to place the files when your
  825.      system receives them.  You may specify anywhere on your disk system, but
  826.      you should try to ensure that you have enough room for the files.
  827.  
  828.         As a Citadel-86, your own directory rooms can be accessed via the
  829.      network for file transfer unless you otherwise designate.   To do so, go
  830.      to the room that you wish to be impervious to the net, edit the room, and
  831.      type Z, which will give the option of disabling this room for net
  832.      downloading.
  833.  
  834.      III.3.f Sending Files
  835.         Sysops have the ability to send file(s) to other systems.  There are
  836.      two aspects to this ability.
  837.  
  838.         First, sending a file.  This facility is accessed via the Net Menu by
  839.      pressing 'S'.  You will be asked for the name of the system to send the
  840.      files to, and the name of the files to send.  You may specify any location
  841.      on your system for the files, and your specification may be ambiguous, so
  842.      that you send multiple files to the target system.
  843.  
  844.         Second, receiving files.  You can control how much space you wish to
  845.      devote to files that are sent to you via the net and the maximum size of
  846.      any file you receive, as well as the location for the files to end up at,
  847.      through parameters in CTDLCNFG.SYS.  Please review The Citadel-86
  848.      Installation Manual or read Section V for more details on this.
  849.  
  850.      III.3.g Priority Net Mail
  851.     The Sysop may specify one or more system should be called immediately,
  852.      regardless of their status, for the purpose of delivery of Mail by the use
  853.      of the 'P'riority Mail option on the Network menu.  This is a precise
  854.      statement; only mail will be delivered (domain and direct), no rooms will
  855.      be shared, no files sent, and most importantly nothing will be received
  856.      from the system(s) called.
  857.  
  858.     The Sysop may specify any system on their primary net list, even if
  859.      the system is disabled (not on any Member nets) or is not on a member net
  860.      on a currently active anytime net session.
  861.  
  862.     When the Sysop logs off (or the system is put back into Modem mode)
  863.      the system will immediately lapse into a network session.  One, and only
  864.      one, attempt will be made to contact each system designated for Priority
  865.      Mail.  Regardless of success or failure no more attempts will be made
  866.      unless the Sysop once again assigns the Priority Mail.
  867.  
  868.     The inquisitive sysop will notice systems assigned to Priority Mail
  869.      will temporarily be assigned to Member Net 32.
  870.  
  871.      III.3.h Until Net Sessions
  872.     System Operators may ask their system to execute a net session with
  873.      some set of systems by using the 'U'ntil Done Net Session option.  This
  874.      option, which is very closely related to the 'until-done-net' class of
  875.      events (see INSTALL3.MAN or further below in this manual), gives the
  876.      system operator the ability to indirectly designate one or more systems
  877.      to be called as soon as the system is no longer in use.
  878.  
  879.  
  880.  
  881.  
  882.  
  883.                                    -9-
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.     When the System Operator selects this option, they will be prompted
  891.      for a 'Member Net', rather than a system name.  The answer should be
  892.      a number between 1 and 31, inclusive, which is then taken to be the
  893.      Member Net to use for finding eligible systems to call.  Eligible systems,
  894.      then, are of course those systems which are assigned to that Member Net.
  895.      A second question requests how long this network session should last
  896.      while attempts are made to contact all systems requiring contact.
  897.  
  898.     The recommended procedure when using this option is to first place
  899.      the system(s) you wish to contact onto some Member Net which is not
  900.      normally in use (see above for the procedure to assign Member Nets).
  901.      When all systems are so assigned, then select this option.  Please
  902.      keep in mind that, unlike the #event, you may specify only one Member
  903.      Net.
  904.  
  905.     If you wish to poll a system, even though there is no reason to call
  906.      the system, edit the desired node, select 'S'pine to make your system
  907.      a spine for that system, and then follow procedure to execute an Until
  908.      Done Net Session.  Once the session is complete, you should probably
  909.      re-edit the given node so that you are not a spine for that system --
  910.      unless, of course, you intend to remain a spine for that system.
  911.  
  912.     If you wish to delete a session you just scheduled, simply go through
  913.      the same routine.  When you specify which Member Net, the system should
  914.      detect the impending duplication and will delete the session, instead.
  915.  
  916.      III.3.i Miscellaneous Net Menu Options
  917.         There are a couple of Net Menu options that haven't been covered yet.
  918.      They are:
  919.  
  920.         'V'iew the net list.  This option lets you view all the systems on your
  921.      netlist.  The format is
  922.  
  923.      <name>  <nodeId>   <need to call>  <baud> <disabled flag>
  924.  
  925.         "need to call" and "disabled flag" only appear if they are true.
  926.  
  927.         'D'ial out allows you to dial other systems manually for BBSing
  928.      purposes. After causing your modem to dial that number, the system will
  929.      drop you into chat mode.  You can dial systems that are disabled, thus
  930.      allowing you to list systems which are not C86Net compatible.
  931.  
  932.         'L'ocal list lets you list all systems on your primary node list
  933.      which are marked as "local".
  934.  
  935.         'I'nitiate Net session lets you schedule an anytime net session to
  936.      begin as soon as you log off.  While this is not as convenient as just
  937.      typing "^A" while the system is in MODEM mode, it's useful when you
  938.      are calling in from remote and want to trigger a net session as soon
  939.      as you logoff.  This is a toggle switch; hit it again to turn off the
  940.      net session you just scheduled.
  941.  
  942.      III.3.j Advanced Room Sharing Options: Routing
  943.         C86Net (and thus Citadel-86) has support for Room Sharing routing.
  944.      This is an advanced option, and should be approached with caution.
  945.  
  946.  
  947.  
  948.  
  949.                                    -10-
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.         Routing in C86Net is used to transfer messages from one group of one
  957.      or more systems to another group of one or more systems.  Commonly, this
  958.      is between two different toll areas in order to reduce costs while
  959.      maintaining communications; however, there is no reason that with careful
  960.      planning routing cannot be used within a toll area.
  961.  
  962.         Normal room sharing and room sharing routing can be, and usually are,
  963.      used together.  Graphically:
  964.  
  965.       R1         |  R2
  966.          p1
  967.          | \     |
  968.          |  p3- - - -p4
  969.          | /     |     \
  970.          p2             p5
  971.                  |
  972.  
  973.         In this diagram, p1, p2, and p3 communicate with each other using the
  974.      Normal room sharing facility, as does p4 with p5.  However, p3 and p4
  975.      communicate using the routing facility; p5 then communicates with p1, p2,
  976.      and p3 indirectly via p4 (and vice versa, of course).  This is a simple
  977.      situation; complex situations can also be handled:
  978.  
  979.       R1         |  R2       | R3   |  R5
  980.          p1                                    p11
  981.          | \     |           |      |         /
  982.          |  p3- - - -p4- - - - -p6- - - - -p10
  983.          | /     |     \     |  |   |         \
  984.          p2             p5      |              p12
  985.                  |           |--|---|
  986.                         /----   |   ----\
  987.                        /    R4  |        \
  988.                       /         p7        \
  989.                      /         /  \        \
  990.                     /        p8    p9       \
  991.  
  992.         p6, for instance, only performs routing, while p3, p4, p7, and p10 will
  993.      perform both normal and routing.
  994.  
  995.         So how do we explain this in a coherent manner?  First, let's remember
  996.      that all of this applies on a room by room basis; a system that is
  997.      performing routing for one room may be performing normal room sharing for
  998.      another room.  Now let's define some classes of nodes.  The first class,
  999.      PEONs, encompass the majority of nodes sharing any room, since most nodes
  1000.      do not need to route messages.  The second class of nodes, BACKBONES, are
  1001.      capable of routing.
  1002.  
  1003.         PEON: This is a node that thinks it is participating in a normal
  1004.      shared room.  A PEON node never "knows" that the room is being routed by
  1005.      another node, and so the administration of this room is very easy for PEON
  1006.      nodes.  This is because the node(s) that may be performing the routing
  1007.      role for this room always talks to PEON nodes using the normal room
  1008.      sharing schemes.
  1009.  
  1010.         Let's formalize the rules of PEON room sharing (this is just a review
  1011.      of Section III.3.f).  A PEON node regards the room being shared as part of
  1012.      a point-to-point network, and therefore always calls all systems that it
  1013.  
  1014.  
  1015.                                    -11-
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.      is directly sharing the room with whenever it has new net-messages that
  1023.      were entered on this PEON node to send.  Incoming net-messages are never
  1024.      passed on to anyone else.  Systems that are compatible with C86Net but
  1025.      don't support the advance room sharing routing schemes should be easily
  1026.      able to participate as a PEON node in a room that is being routed by
  1027.      someone else.
  1028.  
  1029.         BACKBONES: A BACKBONE for a room is a node which is capable of routing
  1030.      messages from one node to one or more other nodes.  Let's set down the
  1031.      rules of routing as precisely as possible for BACKBONEs.
  1032.  
  1033.      a) Each node a system is directly sharing a given room with will be either
  1034.         a PEON (explained above) or another BACKBONE, and the system will know
  1035.         (be told by the sysop) which each node is.  The type of node (PEON or
  1036.         BACKBONE) determines which messages will be routed to that node during
  1037.         a network session, and will be detailed in b) and c), below.
  1038.  
  1039.      b) When the system shares a room with a PEON node, a BACKBONE assumes that
  1040.         the given system directly shares this room with all other PEONs which
  1041.         are sharing this room with this BACKBONE.  Therefore, the BACKBONE will
  1042.         not pass any messages from any PEON to any other PEON node.  From the
  1043.         narrow perspective of a collection of PEON nodes, a BACKBONE behaves
  1044.         exactly the same way, in fact those PEON nodes do not need to "know"
  1045.         about the BACKBONE status of the routing system, since it isn't routing
  1046.         messages from any of the PEON nodes to any of the other PEON nodes.
  1047.  
  1048.         When sharing a room with a PEON, a BACKBONE also assumes that the PEON
  1049.         has neither direct or indirect contact with any other BACKBONE systems
  1050.         besides itself except through* itself.  Therefore, a BACKBONE will pass
  1051.         on all messages received from any and all BACKBONE systems to all PEON
  1052.         systems connected with this room.
  1053.  
  1054.      c) When a BACKBONE system shares a room with another BACKBONE system, it
  1055.         assumes that, first, it does not have any communication with the PEON
  1056.         systems sharing this room directly with you (do not confuse this with
  1057.         any and all PEON nodes in its area, though), and secondly it does not
  1058.         communicate with any of the other BACKBONES which you communicate with.
  1059.  
  1060.         Therefore, when a BACKBONE is sharing a room with another BACKBONE, it
  1061.         routes all messages from all PEONs and all BACKBONEs to the BACKBONE
  1062.         it is sharing with.  This routes messages from local PEONs as well as
  1063.         allowing a series of BACKBONES to route messages to far-flung areas.
  1064.  
  1065.         A diagram is undoubtedly in order at this point.  This portrays the
  1066.      the sharing of a single room.
  1067.  
  1068.  
  1069.         P1-----                                          P10
  1070.        /|      \                                        /       Px= PEON x
  1071.       | P2------B1-------B2-------B4---------B5-------B6        Bx= BACKBONE x
  1072.        \|       /\               /  \         \         \
  1073.         P3-----/  \             P6---P7        \    P8   P11
  1074.                    B3                           \  / |
  1075.                   /  \                           B7  |
  1076.                  P4---P5                           \ |
  1077.                                                     P9
  1078.  
  1079.  
  1080.  
  1081.                                    -12-
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.         In the above diagram, any message left on any system in the given room
  1089.      will be seen on all systems in the diagram (eventually).  Let's follow
  1090.      the progress of a message from P1, Peon 1.  The message will reach P2 and
  1091.      P3 via direct room sharing (Section III.3.f),as well as B1 [see b) above].
  1092.      Since the message comes from a PEON, by the rules set forth in c) above
  1093.      the message from P1 will be passed on to both B2 and B3 when we come into
  1094.      contact with them.
  1095.  
  1096.         P4 and P5 will receive the message of P1 from B3 due to b) above, to
  1097.      wit: "... a BACKBONE will pass on all messages received from any and all
  1098.      BACKBONE systems to all PEON[s] ..."
  1099.  
  1100.         B4 will receive the message originating on P1 from B2, as noted in c)
  1101.      above, and in like manner will pass it on to B5, and also to P6 and P7
  1102.      as B3 did for P4 and P5.  B5 will pass on P1's message to B6 and B7, and
  1103.      they in turn will pass them on to P10 and P11, P9 and P10, respectively.
  1104.  
  1105.         There are two types of BACKBONEs, differentiated by their calling
  1106.      characteristics.  This is a bit of sticky point: a system may be both
  1107.      types of BACKBONE for any room as required (and in practice many are
  1108.      both).  Essentially, the type of BACKBONE a system is for a room defines
  1109.      the system's relationship with another node.
  1110.  
  1111.         When a system, for some room, is defined as a PASSIVE BACKBONE for some
  1112.      node, this means that this system will not call the other system during
  1113.      net sessions when the only reason to call would be to share this room.
  1114.      PASSIVE means "do nothing", and that's what a PASSIVE BACKBONE does: it
  1115.      waits for the other node to call.
  1116.  
  1117.         And, conversely, when for some room a system defines itself as an
  1118.      ACTIVE BACKBONE for some other node, it is guaranteeing that it will call
  1119.      (or poll) that node for messages once during a net session, no matter if
  1120.      it has new messages to share or not.
  1121.  
  1122.         Why would a system want to be both ACTIVE and PASSIVE for a single
  1123.      room?  Suppose we had this:
  1124.  
  1125.        B1------B2-------B3------B4
  1126.  
  1127.         By allowing a system to assume either PASSIVE or ACTIVE roles, depend-
  1128.      ing on the system in question, we can for instance allow B2 to be ACTIVE
  1129.      in relation to B1, while PASSIVE in relation to B3.  This allows the costs
  1130.      of netting to be more evenly spread.  Then B3, itself ACTIVE in relation
  1131.      to B2, can be PASSIVE in relation to B4.  In this way, no one carries the
  1132.      costs of calling two backbones (and B1 gets off scot-free!).
  1133.  
  1134.         The type of BACKBONE a system is does not affect what messages will be
  1135.      routed.  For instance, messages from B1 will reach B4, and those of B4
  1136.      will reach B1.
  1137.  
  1138.         So, now you're wondering how to actually get these setup, right?  This
  1139.      is accomplished by editing the room.  First, use 'S' to enter all systems
  1140.      sharing this room DIRECTLY with, including all of your local PEON nodes,
  1141.      and all the BACKBONES that you will be talking to, but NOT any non-local
  1142.      PEON nodes (i.e., PEONS that will receive your region's messages via
  1143.      routing). After finishing that, hit 'B' at the Room Edit prompt.
  1144.  
  1145.  
  1146.  
  1147.                                    -13-
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.         You will then be asked three questions: which nodes do you want to be
  1155.      PASSIVE BACKBONES for, which nodes you wish to be ACTIVE BACKBONES for,
  1156.      and which nodes you wish to return to PEON status.
  1157.  
  1158.         Here are three last thoughts on routing.  First, you may wish to
  1159.      consider using the Member nets to separate nodes into two different
  1160.      classes, and then network at different times for the different classes.
  1161.      For instance, in the Twin Cities we network from 3 to 3:45 in the morning
  1162.      for local room sharing.  At 3:45 all but one of the systems returns to
  1163.      normal operating mode.  That remaining system drops from the first 
  1164.      networking session, which was for net 1, and then goes right into another
  1165.      network session again, but this time for net 2, which keeps it from 
  1166.      trying to talk to anyone else but for a system in New York, which
  1167.      functions as an ACTIVE BACKBONE for several rooms (the lone system in the
  1168.      Twin Cities functions as a PASSIVE BACKBONE). This networking session 
  1169.      lasts for 15 minutes, which is normally more than enough time to complete
  1170.      this single call. Therefore, we usually have a successful nightly
  1171.      connection with New York.
  1172.  
  1173.          Our second thought relates to network configurations and routing.  So
  1174.      far, all of our diagrams have had two BACKBONES (or at least a HOST and a
  1175.      BACKBONE) communicating.  While this is normal, it is also possible to
  1176.      have a configuration like this when all nodes are local to each other:
  1177.  
  1178.                p1
  1179.                | \                   p1 = p3 = p4 = PEON
  1180.                |  B2 - - - - p4      B2 = ACTIVE BACKBONE for p4
  1181.                | /
  1182.                p3
  1183.  
  1184.         When all the nodes are local, B2 will communicate with p4 using the
  1185.      normal room sharing protocol rather than using the routing protocol.
  1186.      This is useful when p4 has C86Net compatible software that does not
  1187.      support routing, along with a modem that will not dial out.  If p4 were
  1188.      to have software that supported room sharing routing, but still had the
  1189.      bad modem, then p4 could of course be classified (classify itself) as a
  1190.      HOST or PASSIVE BACKBONE for B2. Since an ACTIVE BACKBONE always calls
  1191.      other BACKBONES, in either case then B2 should make at least one call to
  1192.      p4 for pickup and delivery.  If p1 and p3 simply had p4 classified as a
  1193.      PEON node, then there is no guarantee that p4 would receive nightly calls
  1194.      from all systems.
  1195.  
  1196.         Third and finally, it is not always necessary that one BACKBONE know
  1197.      that another system is a BACKBONE.  For instance,
  1198.  
  1199.  
  1200.                   /----P1-----\
  1201.      . . . -----B1------|------B2----- . . .
  1202.                   \____P2_____/
  1203.  
  1204.  
  1205.      is thoroughly valid if both B1 and B2 think of each other as PEONs, even
  1206.      if they act as BACKBONEs.  The PEONs would, of course, treat B1 and B2
  1207.      as fellow PEONs, not knowing any better.  Since B1 thinks of B2 as a PEON,
  1208.      it would not route any of the messages from P1 and P2 to it (and B2 would
  1209.      get those messages directly), but it would route messages from other
  1210.      BACKBONEs to B2 as well as P1 and P2.  B2 would accept all messages from
  1211.  
  1212.  
  1213.                                    -14-
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.      B1 as PEON messages and thus not route them to P1 and P2, but it would
  1221.      route them to BACKBONEs connected to B2.  This might prove useful in some
  1222.      situations.
  1223.  
  1224.         Confusing?  For us, too.
  1225.  
  1226.      III.3.k Advanced Room Sharing Options: Virtual Rooms
  1227.         Let's begin with motivation: A certain PASSIVE BACKBONE discovered
  1228.      that while a certain room that he was backboning certainly belonged on
  1229.      the network, he didn't want that particular room on his system, because
  1230.      it didn't fit the atmosphere of the system.  Furthermore, the traffic
  1231.      in that room was so heavy that it was scrolling his message base faster
  1232.      than he liked (due to the fact that the messages in shared rooms are
  1233.      stored in the message base, just like any other message).
  1234.  
  1235.         Thus, the need for 'Virtual rooms' was discovered.  A Virtual room,
  1236.      much like Virtual memory, is a room that isn't really there, even though
  1237.      you route messages.  Messages, rather than being stored in your message
  1238.      base, are stored as files on your disk system, not taking up room
  1239.      in your message base, although they do consume room on your disk system.
  1240.      So, you have the ability to perform routing services for other systems,
  1241.      while not cluttering your message base with them.
  1242.  
  1243.         Virtual Rooms administration is completely contained in the
  1244.      utility VIRTADMN.EXE, which cannot be run through Citadel-86's
  1245.      <O>utside Commands menu; you must take Citadel-86 down in order to
  1246.      run VIRTADMN.  VIRTADMN should be fairly self-explanatory for the
  1247.      experienced sysop when used in interactive mode.  The following
  1248.      structure is created and maintained by VIRTADMN:
  1249.  
  1250.                         <C-86's home level>
  1251.                                 |
  1252.                              VIRTUAL    <ctdlvrm.sys, ctdlvnet.sys>
  1253.                                 |
  1254.                         ------------------
  1255.                         |   |   |   |   |
  1256.                         0   1  .......  N
  1257.                                         |
  1258.                                        --------
  1259.                                        |      |
  1260.                                      PEON  BACKBONE
  1261.  
  1262.         The numbered directories within the VIRTUAL directory correspond
  1263.      to the virtual room slot numbers; since Virtual Rooms can be deleted,
  1264.      this sequence can be broken.  Each of these directories contain the
  1265.      pair of directories PEON and BACKBONE.  The PEON directory contains
  1266.      the messages from PEON nodes, which should be routed to Backbone
  1267.      systems, while the BACKBONE directory contains messages from Backbone
  1268.      systems that need to be routed to other Backbones and Peons.  Like
  1269.      normal backboning (III.3.i), your system may serve as a Passive Backbone
  1270.      for some systems and Active Backbone for other systems for any given
  1271.      room.
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.                                    -15-
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.         Naturally, as the network sessions pass, you will find that the
  1287.      files containing the messages will accumulate, cluttering up your disk
  1288.      drive.  The solution is to run VIRTADMN using the +batch command line
  1289.      argument.
  1290.  
  1291.         See UTIL3.MAN for full details on VIRTADMN.
  1292.  
  1293.      III.3.l Advanced Room Sharing Options: Vortex Detection and Correction
  1294.         "Vortex" is a piece of jargon someone on C86Net came up with to 
  1295.      describe the phenomenon of messages 'repeating' themselves in shared
  1296.      rooms.  For instance, a message from Thom Brown might reappear three times
  1297.      in a shared room on Test System.  The redundancy is both tedious and room
  1298.      consuming, and so is a negative influence on the network.
  1299.  
  1300.         A vortex is usually a result of poor topology management of a C86Net.
  1301.      If you are not familiar with C86Net backbones and other such things,
  1302.      please read III.3.i Advanced Room Sharing Options: Routing.  The problem
  1303.      lies in having a "loop" of systems, usually BACKBONE systems.  For
  1304.      instance, this configuration would cause a vortex:
  1305.  
  1306.                      Node A
  1307.                     /   |         Where all nodes are backbones
  1308.                  Node--Node
  1309.                    B    C
  1310.  
  1311.      Messages generated on Node A would be sent to Node B.  Node B would then
  1312.      pass them on to Node C, which in turn would pass them right on back to
  1313.      Node A.  If those backbones had other backbones hanging off of them,
  1314.      messages coming in from those would effectively "bounce back" to them.
  1315.      There are obviously a number of variants on this mistake that can cause a
  1316.      vortex.
  1317.  
  1318.         Another cause of vortexing is system crashes during networking, such as
  1319.      power outages, in which messages will be sent by one system to another,
  1320.      but that fact is never recorded, thus causing them to be resent during the
  1321.      next network session.
  1322.  
  1323.         So how does Citadel-86 handle vortices?  Any message on the network can
  1324.      be uniquely identified by its point of origin (node ID) and the message
  1325.      number it was assigned on the point of origin.  Both data are carried by
  1326.      the message wherever it goes.  We also assume that message numbers are
  1327.      assigned in strictly ascending order.
  1328.  
  1329.         Therefore, the way to handle vortices is not very complex.  For each
  1330.      system which we share rooms with, either directly or indirectly (that is,
  1331.      via routing), we keep a file of room indicators and associated message
  1332.      numbers and dates.  For each room in this file, the associated message
  1333.      number is the number of the highest message received from this node for
  1334.      this room, and the date is the date of the last message received.  Once
  1335.      an entry is established for a room in the node's file, it's a simple
  1336.      matter to detect vortexing messages: if the current message comes from a
  1337.      node which we recognize, we simply compare the current message's number to
  1338.      the highest we have received for this room, and the date similarly.  If 
  1339.      both tests are failed, we discard it.
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.                                    -16-
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.         Messages which are discarded will also cause an error message to pop up
  1353.      in the Aide> room, telling you what system was involved in the net session
  1354.      when the vortex occurred, and what systems' messages were involved in the
  1355.      vortexing.  The message(s) discarded may possibly also show up in a file 
  1356.      named DISCARD.
  1357.  
  1358.         The records of the systems are kept in two files, VORTEX.SYS and
  1359.      VTXIND.SYS, in your #NETAREA; they are not related in anyway to
  1360.      CtdlNet.Sys.  The records of the rooms they appear in are kept in the
  1361.      #.VEX files, where '#' corresponds to the systems' positions in
  1362.      VORTEX.SYS, again in #NETAREA.
  1363.  
  1364.         Occasionally, vortex records are corrupted, which you will notice
  1365.      because messages are being rejected when they shouldn't be.  You fix this
  1366.      using the following procedure.  Use the utility VEXFIND.EXE to find the
  1367.      number of the system within VORTEX.SYS by typing
  1368.  
  1369.          VEXFIND "<system name>"
  1370.  
  1371.         You must use the "formal" name of the system.  For instance,
  1372.  
  1373.          VEXFIND "test system"
  1374.  
  1375.      will NOT work.  Instead,
  1376.  
  1377.          VEXFIND "c-86 test system"
  1378.  
  1379.      will yield the number of Test System.  Running VEXFIND without anything
  1380.      on the command line will get you a list of systems in VORTEX.SYS.  You
  1381.      may run VEXFIND in either of two places: in the same place you run
  1382.      Citadel-86 from, in which case Citadel-86 will use your CtdlTabl.Sys to
  1383.      find the vortex records, or in your #NETAREA, where Citadel-86 will find
  1384.      the vortex records without help, and will be a bit faster, too.
  1385.  
  1386.        Once you know the number of the system within VORTEX.SYS, you should
  1387.      delete the corresponding .VEX file.  For instance, if you found Nowhere
  1388.      was in position 34 of your VORTEX.SYS, you would delete 34.VEX.
  1389.  
  1390.         By default, vortex management is off.  If you wish to have vortex
  1391.      detection and correction active, place "+vortex" on your command line.
  1392.      There are several reasons why you might not wish to have it active, such
  1393.      as not enough disk space, not worth the time, etc.
  1394.  
  1395.         Citadel-86 Vortex handling does not cover Virtual Rooms.  All such
  1396.      messages are regarded as non-vortexed.
  1397.  
  1398.      IV. Networking and events
  1399.     Naturally, a new System Operator will want to know: how does one
  1400.      initiate network sessions?  What are the entries to make, the guidelines
  1401.      to follow?  There are a varieties of options of several types which all
  1402.      interact to make your life joyfully miserable.
  1403.  
  1404.      IV.1 Member Nets
  1405.     All of the event classes described here depend upon the concept of a
  1406.      "member net" (see above on how to assign a system to a member net).  For
  1407.      those who have not run across this explanation before, a Member Net (a
  1408.      number between 1 and 31, inclusive) is a way to group zero or more
  1409.  
  1410.  
  1411.                                    -17-
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.      systems together for purposes of using that group in a network session or
  1419.      something network-related.  Your system can have 31 such groups, each
  1420.      having zero or more systems assigned to it, and each system on your
  1421.      primary nodelist may be assigned to zero or more of those nets.
  1422.  
  1423.     This ability gives you the flexibility to place certain systems sharing
  1424.      some characteristic (such as being local to you) in one group and then
  1425.      using that group in one or more events for some purpose, while not
  1426.      involving systems not sharing that characteristic in the given event.
  1427.  
  1428.      IV.2 Normal Network Sessions
  1429.     A "Normal Network Session" is a scheduled network session in which
  1430.      your system drops into network mode at a specified time, stays in it
  1431.      until a specified amount of time has passed, and may call other systems
  1432.      during that time (depending on what systems are assigned to the Member
  1433.      Net(s) assigned to an event of this type).
  1434.  
  1435.         Network sessions are set up using the #event parameter of CTDLCNFG.SYS,
  1436.      and look as follows (please review The Citadel-86 Installation Manual if
  1437.      you are not familiar with the general format of #event parameters).
  1438.  
  1439.      #event <days> <start time> network preempt <duration> <message> <networks>
  1440.  
  1441.         Days, start time, and message are explained in the Installation Manual.
  1442.      While the network field is required, preempt is only a suggested field
  1443.      for this #event, on the assumption that you do not wish users to interfere
  1444.      with your netting (not using preempt can result in shortened duration of
  1445.      network session, also).  Duration defines how long the network session is
  1446.      to last (specify in minutes).  Finally, "networks" is a list of nets who's
  1447.      members are eligible to be called during this network session.  If you
  1448.      specify more than one, you must separate them by commas, with no spaces.
  1449.  
  1450.     Using #event for networking is straightforward and easy to do.  Here
  1451.      are some rules to follow
  1452.  
  1453.         a) Classify nodes that you want to network with into groups that
  1454.            share characteristics that will reflect on what time of the day
  1455.            (or day of the week) you may want to network with them, and assign
  1456.            them to the same net.
  1457.         b) Coordinate with them suitable times for network activity.
  1458.         c) Write appropriate #event parameters for your system that will
  1459.            allow netting with the systems.
  1460.  
  1461.         Here is an example for networking every night at 3AM for 45 minutes for
  1462.      systems on net 1.
  1463.  
  1464.      #event All 3:00 network preempt 45 "Networking" 1
  1465.  
  1466.         This is an example for netting from 4:45 to 4:55 on Tuesdays and
  1467.      Saturdays for nets 3, 9, and 10.
  1468.  
  1469.      #event Tue,Sat 4:45 network preempt 10 "Networking" 3,9,10
  1470.  
  1471.      IV.3 Anytime Network Sessions
  1472.         Citadel-86 also allows "anytime netting."  Anytime netting is the
  1473.      ability to receive and complete network calls from other systems at any
  1474.      time of the day or night, and to call, initiate, and complete network
  1475.  
  1476.  
  1477.                                    -18-
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.      sessions with other systems after a given amount of "dead time" has
  1485.      occured on a system.
  1486.  
  1487.         In the area of reception, an installation using the network will
  1488.      (or should) always recognize a network call from another C86Net system,
  1489.      regardless of whether the other system is calling out in Normal Network
  1490.      Session mode or in Anytime Netting mode.  There is currently no way to
  1491.      deactivate (i.e., force Citadel-86 not to recognize a network call) for
  1492.      specified parts of the day.
  1493.  
  1494.         In the area of calling out, Citadel-86 Sysops control this ability
  1495.      via the use of #events.  A Citadel-86 will not call out during the day for
  1496.      anytime netting unless they are specifically told to do so via the #event.
  1497.      The generic format of a #event that controls anytime netting is:
  1498.  
  1499.      #event <days> <start time> anytime-net quiet <duration> <message> 
  1500.                                 <dead time> <net length> <nets>
  1501.  
  1502.         (all on one line)
  1503.  
  1504.         This format is similar to that used for Normal Network Sessions.
  1505.  
  1506.      There are five changes. 
  1507.      
  1508.         First, "anytime-net" specifies that for the #event starting at
  1509.      "start time" and ending at "start time + duration", the system is
  1510.      allowed to call those systems specified by the "nets" field.
  1511.      
  1512.         Second, "quiet" is the only valid type specification for events
  1513.      of the "anytime-net" classification. 
  1514.      
  1515.         Third, "duration" does not specify how long the net session will
  1516.      last, but instead specifies how long the system is eligible to make
  1517.      calls to other systems.
  1518.  
  1519.         Fourth, a field named "dead time" has been included right after the 
  1520.      "message" string.  You use this field to specify (in minutes) how long 
  1521.      your system should experience inactivity before attempting to call other
  1522.  
  1523.      systems (specified in the "nets" field).  You might want to set this 
  1524.      fairly high during daytime hours, if they are busy, so that your users 
  1525.      have a better chance of getting on during the day, but set it lower 
  1526.      during the night time hours, which might be less busy.
  1527.  
  1528.         Fifth, a field named "net length" has been added right after the "dead 
  1529.      time" field.  This field specifies (in minutes) the maximum amount of 
  1530.      time your system should spend trying to call other systems during an 
  1531.      anytime net session.  This is much like the "duration" field in a normal 
  1532.      network event, because a net session might last much longer for such 
  1533.      things as large file transfers, etc.
  1534.  
  1535.         Anytime netting is compatible between just about any two systems on
  1536.      C86Net.
  1537.  
  1538.         Due to the above, you should group all of the systems that can accept
  1539.      anytime net calls into one net (and that you are willing to call at any
  1540.      time of the day), and then specify only that net for the #event parameter.
  1541.  
  1542.  
  1543.                                    -19-
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.         Odd thoughts:
  1551.  
  1552.         o If there is no need to call anyone, the system will not enter into
  1553.           net sessions after dead time limits are reached.
  1554.         o If you are a spine for another system, you will not call that system
  1555.           during anytime netting unless you have a "real" reason to call that
  1556.           system.  If you absolutely must* poll another system on a daily (or
  1557.           weekly, or whatever) basis, you must use a Normal Network Session or
  1558.           Until Done network session to do so.
  1559.         o During Normal Network Sessions, you may have noticed, there may
  1560.           be delays between calls of up to 5 minutes.  This has been disabled
  1561.           for anytime netting, resulting in only 2 second delays between calls.
  1562.  
  1563.         Finally, ^A while the system is in MODEM mode will tell the system to
  1564.      attempt to execute an Anytime Net session at the next opportunity (i.e.,
  1565.      when the current user, if any, logs off).
  1566.  
  1567.      IV.4 Until Done Network sessions
  1568.     An "until-done-net" class of event is very similar to a Normal Network
  1569.      Session (see IV.2), and uses the exact same format of parameter as a
  1570.      Network session, except the class is 'until-done-net' instead of
  1571.      'network'. The difference between 'network' and this class of networking
  1572.      session lies in its behavior.  If, during the network session, your system
  1573.      realizes that it has made all the calls it needed to make (as derived from
  1574.      the Member Nets in the parameter), it'll immediately drop out of network
  1575.      mode.
  1576.  
  1577.     Since this class of network session will call any spines which happen
  1578.      to be assigned to the Member Net assigned to this event, this event is
  1579.      useful to "force" a poll to a given system at a given time even if there
  1580.      is no reason for your system to call otherwise.  Once the network session
  1581.      is done, your system should once again become available to users.
  1582.  
  1583.      IV.5 Network Caching
  1584.     Network caching is related to the Fast Transfers feature mentioned
  1585.      in the Node Editing part of this manual.  In connection with this feature,
  1586.      a #event for caching all the messages for a given system has been
  1587.      implemented.  It is known as the 'netcache' #event.  The format is
  1588.  
  1589.     #event <days> <time> netcache <type> 0 "<whatever>" <nets>
  1590.  
  1591.      When this event is run by Citadel-86 it will cause all systems using the
  1592.      nets defined in the <nets> field (just like the normal network events) to
  1593.      have all messages meant for those system cached, rather than just the
  1594.      virtual rooms.
  1595.  
  1596.     Of course, if you are calling out for those systems, then this is
  1597.      rather useless, because the complete cache will take place before the
  1598.      outgoing call takes place.  However, if you have one or more incoming
  1599.      callers that use Fast Transfers, call at a consistent time, and you want
  1600.      to minimize call duration as much as possible (even though it seems like
  1601.      the phone system only measures calls in minutes, not seconds), you can use
  1602.      this #event to cache messages shortly before a network session may be
  1603.      expected to take place.
  1604.  
  1605.     Don't schedule this to take place during a scheduled network session;
  1606.      have it take place shortly before.
  1607.  
  1608.     This class of event should never be of type 'quiet'; 'preempt' or
  1609.      'non-preempt' is more appropriate (and up to you).
  1610.  
  1611.      V. Domains in Citadel-86
  1612.  
  1613.      V.1 What are domains?
  1614.         Domains are a way to partition a collection of BBS nodes into discrete
  1615.      sets for purposes of both easing user addressing and internal delivery
  1616.      details.  A solid real world example of domains is the US Postal Service.
  1617.      The primary domain is hierarchical.  The top of the hierarchy is encoded
  1618.      in their "zip codes".  The zip codes are used to quickly discover which
  1619.      geographical area of the country a given piece of Mail is meant for and
  1620.      the mail is then physically delivered to that area, or more accurately to
  1621.      a "server", or large Post Office, for that area.
  1622.  
  1623.         Once in the appropriate area of the United States, the next level of
  1624.      hierarchy is the street address (which is being replaced by the 9-digit
  1625.      zip codes).  There is redundancy at this level when the envelope bears the
  1626.      name of the city of the recipient.
  1627.  
  1628.         Another example is the phone system, where area codes are the domains.
  1629.      Everybody's phone is the member of one and only one domain.
  1630.  
  1631.         In a BBS network there is not a necessarily readily apparent method for
  1632.      dividing the nodes into domains; it is up to the nodes on the network to
  1633.      agree to an acceptable network division, based on whatever criteria seems
  1634.      best fitted to the situation.  (If you are on main C86Net, you'll notice
  1635.  
  1636.  
  1637.                                    -20-
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.      some pressure being exerted for systems to be parts of domains based on
  1645.      their physical location.  For instance, systems in Minnesota will, for
  1646.      the most part, belong to domain "MN".)
  1647.  
  1648.         Each domain on the network will then have at least one "server" system
  1649.      associated with it.  Most Mail meant for a system in that domain
  1650.      originating in another domain will go through the server for that domain.
  1651.      Some Mail won't due to special arrangements between systems.  For the
  1652.      purposes of this document we can ignore those special cases.
  1653.  
  1654.      V.2 So how does Citadel-86 utilize Domains?
  1655.  
  1656.         Citadel-86 utilizes domains in three important ways.
  1657.  
  1658.         First, it uses them to facilitate Mail routing between different
  1659.      locations.  Most mail traveling outside of its own area will bear an
  1660.      address consisting of a name and domain.  The main backbones of the C86Net
  1661.      carrying the mail will know how to get to the domains registered with the
  1662.      network, and thus the Mail will get delivered.
  1663.  
  1664.         Second, it uses them to make maintenance of large nodes of lists on
  1665.      installations far easier and convenient.  A large node list makes it
  1666.      easier for users to send mail without having to necessarily worry about
  1667.      knowing what domain a system resides in, but can slow down systems.
  1668.      Therefore, Citadel-86 supports both "primary" and "secondary" lists of
  1669.      nodes.
  1670.  
  1671.         The primary node list is the list you construct using either the
  1672.      RoutMail utility or Citadel-86's Network Menu 'A' option (see Section
  1673.      III.3.a).  Nodes you list on your primary nodelist are valid targets for
  1674.      direct Mail delivery, route mail handling, direct room sharing, file
  1675.      requests, and file sends.
  1676.  
  1677.         A secondary node list consists of one or more files containing system
  1678.      names and their associated domains.  These files, located in #NETAREA,
  1679.      are named NODES0.FST, NODES1.FST, etc.  Secondary lists are in a special
  1680.      format (see UTIL3.MAN on 2ndFmt.Exe) which lets Citadel-86 quickly look
  1681.      up names.  On the main C86Net, acquisition of one of these lists can be
  1682.      automated in cooperation with your local domain server.  Secondary lists
  1683.      let users send mail without undue inconvenience, while not burdening
  1684.      installations with large primary node lists, by looking up a system
  1685.      name in the secondary list and automatically assigning the proper domain
  1686.      name to it, rather than forcing the user to explicitly state what it
  1687.      is.
  1688.  
  1689.         Third, Citadel-86 allows users to send mail explicitly to systems
  1690.      which the current installation knows nothing about.  Users may specify
  1691.      a system and domain address which the current system knows nothing
  1692.      about, yet C86Net will still try to deliver the Mail on the assumption
  1693.      other systems on the net may have a better idea how to get to the
  1694.      given system.  Users use this explicit method by typing .EN at the
  1695.      Mail> prompt and entering the address as "system _ domain" or
  1696.      "system.domain".
  1697.  
  1698.      V.3 Practical Notes and Procedures for all systems
  1699.         This section describes what every Citadel-86 must do to effectively
  1700.      participate in domains.  First we'll discuss some CtdlCnfg.Sys
  1701.  
  1702.  
  1703.                                    -21-
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.      parameters and then some suggested procedures.  Notes on being a
  1711.      domain server reside in the section following.
  1712.  
  1713.         #nodeDomain is a string parameter which identifies which domain you
  1714.      are a part of.  You can only belong to one domain at a time.  Before
  1715.      setting this parameter you should check with your local backbone
  1716.      (which is presumably who you originally made contact with C86Net) so
  1717.      you can be part of the domain s/he is serving and get service in that
  1718.  
  1719.      way.  If there is no backbone local to you, you may want to become the
  1720.      local server (if you can afford making calls or can con some other
  1721.      backbone into making calls to you).  The #nodeDomain is transmitted
  1722.      with each message originating from your system so other systems on
  1723.      the net will know how to send Mail to you (using your system and
  1724.      domain to do the addressing).
  1725.   
  1726.         #MailHub provides a facility for forwarding domain mail to systems
  1727.      which know who serves what domains, so that most of the systems on the
  1728.      network need not know who is serving what domain.  Most of the time this
  1729.      parameter should be defined to be your local backbone.  Backbones can use
  1730.      this, too, to forward to other backbones which may be more knowledgeable
  1731.      about the state of the network.
  1732.  
  1733.         #DOMAINAREA identifies where the temporary files associated with
  1734.      domain mail are stored.  We strongly suggest you not make this the
  1735.      same as #NETAREA!
  1736.  
  1737.         #DomainDisplay is strictly an optional parameter which you can skip 
  1738.      over and/or do nothing about if you don't feel like it.  It is provided
  1739.      so you can customize what the display of domains will look like on your
  1740.      system when your system is displaying foreign messages to users.
  1741.  
  1742.         There is a trick to this parameter (and you C programmers will, of
  1743.      course, instantly recognize it): This string parameter must have included
  1744.      in it somewhere the character sequence "%s".  When this parameter is used
  1745.      to display a domain, the "%s" is replaced by the domain name.
  1746.  
  1747.         If you don't use this parameter, then the default behavior is to 
  1748.      display the nodeName/nodeDomain sequence like this:
  1749.      ... @nodeName _ nodeDomain. In other words, the default value of
  1750.      #DomainDisplay is
  1751.  
  1752.          #DomainDisplay " _ %s"
  1753.  
  1754.      (Note the leading space.)  This presents an aesthetically pleasing
  1755.      appearance and is also compatible with the user interface for specifying
  1756.      how to send net mail to an unknown system in another domain.  But, of
  1757.      course, some people like to have a different appearance to the domains of
  1758.      other messages.  For instance, enclosing the domain name in brackets is
  1759.      popular:
  1760.  
  1761.          #DomainDisplay " [%s]"
  1762.  
  1763.      The maximum length of this parameter is 10 characters.
  1764.  
  1765.         The suggested procedure for non-domain servers is to inform your
  1766.      local domain server of your existence and ask them to pass on that
  1767.  
  1768.  
  1769.                                    -22-
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.      info to the current domain coordinator (currently, and reluctantly,
  1777.      Hue, Jr. @C-86 Test System _ MN).
  1778.  
  1779.         Sections V.4 and V.5 concern Domain Servers.  V.6 will be of
  1780.      interest to everyone, though.
  1781.  
  1782.      V.4 Practical Notes and Procedures for Domain Servers
  1783.         First we'll discuss CtdlCnfg.Sys parameters of concern to domain
  1784.      servers, then special files needed by domain servers, followed by a note
  1785.      on utilities of use to domain servers, and finally some thoughts on
  1786.      procedures.
  1787.  
  1788.         If you are going to be a domain server (i.e., a system which will
  1789.      accept Mail meant for some domain and is responsible for knowing how to
  1790.      get to all systems in that domain), you must tell your installation about
  1791.      this.  You do this by putting a line like this in your CtdlCnfg.Sys:
  1792.  
  1793.         #ServeDomain "<domainname>"
  1794.  
  1795.      For instance, Test System has
  1796.  
  1797.         #ServeDomain "MN"
  1798.  
  1799.         Every piece of Mail addressed to MN will be processed by Test System,
  1800.      based on the target name ("Backfence", "Nowhere Land", "DogLink", for
  1801.      example), for delivery to their target systems.
  1802.  
  1803.         You can serve more than one domain by placing additional #ServeDomain
  1804.      parameters in your CtdlCnfg.Sys.
  1805.  
  1806.         "Name Resolution", or the identification of which system the mail
  1807.      should be delivered to by its name (rather than the far more reliable node
  1808.      ID) is a necessity if the Mail is to go through.  Therefore, you should
  1809.      make sure the names on your primary node list, which is used to reroute
  1810.      the incoming domain mail to your local systems, are simple -- i.e., they
  1811.      are the likely form in which incoming Mail will be addressed to.  For
  1812.      instance, "Troy City" is a lot easier to deal with than "Troy City NY",
  1813.      and the mail will be far more likely to be delivered.
  1814.  
  1815.         This is equally applicable to your own #nodeName.
  1816.  
  1817.         If you're in one of those rare situations where two names seem equally
  1818.      applicable for some system (such as "C-86 Test System" and "Test System"),
  1819.      you can use ALIASES.SYS to make an alias.  The format of this file is
  1820.      simply
  1821.  
  1822.      <alias> <realname>
  1823.  
  1824.      where realname is the name in your primary node list, or your own
  1825.      #nodeName if you need an alias for yourself (like Test System does).
  1826.  
  1827.         Domain Handlers need one special file which local systems don't need.
  1828.      CtdlDmhd.Sys, located in your #NETAREA directory, is basically a directory
  1829.      of domain servers.  This file is used by Domain Handers to decide how to
  1830.      get domain mail to the server for each domain.  For those domain servers
  1831.      a system connects directly with, this is very easy.  For such a domain
  1832.      for which mail meant for that domain has come into existence (either via
  1833.  
  1834.  
  1835.                                    -23-
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.      netmail from some other system or created on this system), the system
  1843.      checks CtdlDmhd.Sys to find the domain server.  It then looks in its
  1844.      primary node list to see if it knows more about the domain server in
  1845.      question.  When it finds it, it also finds the direct connection, and
  1846.      the next time you connect with that system, the mail is delivered.
  1847.  
  1848.         The problem is a bit more tricky for domains that are farther away.
  1849.      There are two options.  First, CtdlDmhd.Sys can also contain hints about
  1850.      how various domains connect to each other.  There may be any number of
  1851.      hints.
  1852.  
  1853.     A second option is to place relevant domain servers in your nodelist
  1854.      and then use the RouteMail utility to set routes up correctly.  For full
  1855.      detail, see the section below on the RoutMail utility (V.5).  Please
  1856.      note you do NOT need every node listed in CtdlDmhd.Sys also present in
  1857.      your primary node list.  The major backbones are responsible for knowing
  1858.      how to get to most of the nearby domains, and the hints in CtdlDmhd.Sys
  1859.      should ensure mail traveling long network distances should reach their
  1860.      destinations.
  1861.  
  1862.         Each line of CtdlDmhd.Sys contains information about one of the domains
  1863.      and its server, or contains one of the hints.  The structure of each line
  1864.      for a domain designation and its server is
  1865.  
  1866.         <domain name><space><system name>:<system ID>
  1867.  
  1868.         For instance, the line describing C-86 Test System as the MN domain
  1869.      server would look like
  1870.  
  1871.         MN C-86 Test System : US 612 470 9635
  1872.  
  1873.         Please note, however, that this is equally valid:
  1874.  
  1875.         MN Test System : US 612 470 9635
  1876.  
  1877.         The name field is only used for human reference; the node ID field is
  1878.      critical to Citadel-86 for management, so make sure you get it right.  A
  1879.      hint line looks like
  1880.  
  1881.          <domain id1> via <domain id2>
  1882.  
  1883.      which is to be read as "domain Id1 is reached via domain id2."  These
  1884.      hints are used to find which system provides the best route to a given
  1885.      domain without needing all domain handlers in the primary nodelist.
  1886.  
  1887.         A '#' will act as a comment in this file, if you like to comment a
  1888.      file like this.
  1889.  
  1890.         If you are connecting to the main C86Net network, then in all
  1891.      probability you can arrange to have this file updated automatically
  1892.      via the backbone you connect with.  See documentation on the 'redirect'
  1893.      #event and the Aff.Exe utility.
  1894.  
  1895.         However, since CtdlDmhd.Sys distribution can be automated, it may be
  1896.      useful to have a second file like CtdlDmhd.Sys.  Therefore, you can set
  1897.      up a file named CtdlDmhd.Lcl in your #NETAREA.  Same format as above.
  1898.      The purpose for this support is to allow installations to have a local,
  1899.  
  1900.  
  1901.                                    -24-
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.      hand-tailored version of CtdlDmhd.Sys that won't be overwritten by the
  1909.      automated distribution system.  Most systems will have no use for this
  1910.      capability, but maybe a few will.  Don't sweat it.
  1911.  
  1912.         The Aff utility, now that we've mentioned it, is a utility which will
  1913.      let you automatically set up file sends depending on whether a given
  1914.      file's time stamp indicates it should be sent to a system or not.  See
  1915.      UTIL3.MAN for more details.  You should strongly consider using this
  1916.      utility to update other domain servers you connect to with new
  1917.      CtdlDmhd.Sys files, and your local systems with new NodesX.* files
  1918.      (both Nodes0.fst and Nodes0.raw).
  1919.  
  1920.         A log file is occasionally generated, called DOMAIN.LOG.  This
  1921.      file will usually only contain messages concerning undeliverable
  1922.      Mail>.  "Undeliverable mail" is mail addressed to a domain served
  1923.      by this system, but the name of the system was unrecognizable.  In
  1924.      this case, DOMAIN.LOG will have an entry with the name of the system
  1925.      the name is meant for.  If the name appears to be misspelled, or is
  1926.      a valid alternative to some system, bringing the system down and
  1927.      placing an appropriate entry in ALIASES.SYS.  When the system comes
  1928.      back up, it'll rescan the outstanding mail, find the Mail in question,
  1929.      find the alternate name and map it to the real name, and set up the
  1930.      mail for delivery.
  1931.  
  1932.         Those systems which do not have #MailHub settings (very rare)
  1933.      will see a second type of message in DOMAIN.LOG.  This message is
  1934.      generated when incoming domain mail is addressed to a domain the
  1935.      system does not know how to reach.  This can be fixed by adding
  1936.      appropriate entries to CtdlDmhd.Sys (or just deleting the mail, if
  1937.      you're in a bad mood), or changing the entry in MAP.SYS in the domains
  1938.      directory (if the domain designation is simply wrong or is garbage).
  1939.      Such undeliverable mail, however, will usually accumulate on one system
  1940.      on the network.
  1941.  
  1942.         Finally, concerning procedures, Hue, Jr. @ C-86 Test System _ MN
  1943.      is currently the acting central domain registration and management point
  1944.      for domain information, so you should contact him if you either want to
  1945.      act as a domain server or if you happen to connect to some different
  1946.      domain servers and think you may be the only connection to them.  Through
  1947.      fortuitous use of the 'redirect' #event on your part and the Aff
  1948.      utility on the part of whoever your local domain server is (or major
  1949.      backbone or however you get to Arcadia), you can have each new version
  1950.      of Ctdldmhd.sys forwarded to you.
  1951.  
  1952.      V.5 RoutMail
  1953.  
  1954.         The ROUTMAIL utility is fully described in UTIL3.MAN.  The domain
  1955.      server, however, really only needs this to know this: you can use
  1956.      ROUTMAIL to automatically update your primary nodelist with all the
  1957.      domain servers on the net (using CtdlDmhd.Sys), and any links you need
  1958.      in order to get to them (which will typically already be in place
  1959.      anyways).  In order to perform this operation, you need CtdlDmhd.Sys
  1960.      and the latest RoutMail map (obtainable from the backbone which leads
  1961.      to Arcadia from where you live).  Once you have them, you need only
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.                                    -25-
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.      type "ROUTMAIL +domains <map file name>", and the system should
  1975.  
  1976.        a) Add all the domain servers to the list
  1977.        b) Add whatever other systems are needed to get to the domain servers
  1978.        c) Set the routing pointers so your system knows how to get to
  1979.            other domain servers without calling them directly.
  1980.  
  1981.         Please note only major backbones or domain servers which directly
  1982.      connect to several domain servers will need to use this feature.
  1983.      Those servers which are on the more outlying parts of the net can
  1984.      probably let #MailHub serve their needs quite well for those domains
  1985.      they don't connect with directly.
  1986.  
  1987.         If you do look at ROUTMAIL more closely, you'll notice you can define
  1988.      routes to other systems (by pointing at the next system on the path to
  1989.      them).  You can use this ability in conjunction with domain mail to
  1990.      deliver Mail to a local system, if, for instance, the system is on limited
  1991.      hours and someone else is better able to get to that system.  It won't
  1992.      interfere with domain mail.
  1993.  
  1994.      V.6 Costing
  1995.  
  1996.         Specific "costs", measured in LD credits, can be set on a domain by
  1997.      domain basis.  This is done via the file CtdlCost.Sys, which is a text
  1998.      file located in your #NETAREA directory.  The file is a collection of
  1999.      entries, each one setting the "cost" to be inflicted on users wishing to
  2000.      reach systems in those domains.  The format is simple:
  2001.  
  2002.         <domain name><space><cost>
  2003.  
  2004.         For example, to set a cost of 2 credits to send mail to domain IL,
  2005.      you'd have
  2006.  
  2007.         IL 2
  2008.  
  2009.         There is also a "special" domain name, "Unknown".  This one lets you
  2010.      set a domain cost for those domains which users can specify but are not
  2011.      listed in this file.  If you want to set this at 1, you'd have
  2012.  
  2013.         Unknown 1
  2014.  
  2015.         Citadel-86 sysops can use Ease to manage this, rather than directly
  2016.      edit the file.
  2017.  
  2018.         Users are assigned LD credits via the Sysop's Network menu (^L-N),
  2019.      using the <C>redit option.
  2020.  
  2021.         It's feasible to set costs at 0 for domains (and in fact is recommended
  2022.      for your own domain [#nodeDomain]), but for those outside of your
  2023.      immediate area you should check with your backbone(s) to make sure they
  2024.      don't mind.
  2025.  
  2026.         This stuff only applies to mail generated on your own system, not on
  2027.      incoming network mail.
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.                                    -26-
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.      V.7 NodesX.*
  2041.  
  2042.         This section more fully describes the NodesX.* files.  The "X" is
  2043.      really a digit.  All files described herein should reside in your
  2044.      #NETAREA directory.
  2045.  
  2046.         The NodesX.FST files are the files Citadel-86 considers as the
  2047.      secondary node lists which should be searched if a user specifies a
  2048.      system not in the primary node lists.  These are specially formatted
  2049.      files (generated using 2ndfmt.exe) which lets Citadel-86 quickly
  2050.      search for a given file name.
  2051.  
  2052.         The reason they are numbered (Nodes0.fst, Nodes1.fst, etc.) is to
  2053.      give sysops more flexibility.  Main C86Net will be trying to supply
  2054.      Nodes0.* on an automatic basis to all interested systems.  However, some
  2055.      systems may find they want to connect some systems not generally
  2056.      available.  Or not.  There is not necessarily any real use for this
  2057.      additional flexibility.
  2058.  
  2059.         The NodesX.RAW files are the files from which the NodesX.FST files
  2060.      were generated.  While the FST files are good for searching for names,
  2061.      they are horrid for display purposes, and displaying lists of system
  2062.      names is important to users, sometimes.  Therefore, those system
  2063.      which want to provide the service of responding in a full manner to
  2064.      .EN? and the like should arrange to have the NodesX.RAW files
  2065.      delivered along with the NodesX.FST files, on the same automated basis.
  2066.  
  2067.      V.8 Technical Notes
  2068.         This section describes domain mail storage.  Domain mail is stored
  2069.      in the #DOMAINAREA directory.  Within this directory will exist a
  2070.      file named MAP.SYS and zero or more directories.  Each directory
  2071.      will contain the domain mail which still needs to be delivered
  2072.      to the domain server for that domain (whether through direct delivery
  2073.      or indirect delivery).  Domain mail is encrypted.
  2074.  
  2075.         MAP.SYS is simply a mapping from the names of the directorys to
  2076.      the name of the domains they serve.  The third field of each line
  2077.      is simply the next file name to use in that directory for incoming
  2078.      mail.
  2079.  
  2080.      VI. STadel mail routing
  2081.         Citadel-86's RouteMail is not directly compatible with STadel's
  2082.      mail routing.  However, Citadel-86 is capable, with proper
  2083.      coaxing, of generating and accepting STadel-compatible (more or
  2084.      less) route mail and delivering the mail to the intended system
  2085.      and recipient.
  2086.  
  2087.         The procedure is not completely trivial and, due to the nature
  2088.      of STadel route mail, it is time consuming.  Areas in which there
  2089.      are several Citadel-86 installations may benefit from designating
  2090.      a single system as the 'gateway' into the STadel mail routing and
  2091.      forcing all the other systems which need to route into the STadel
  2092.      network to go through the gateway system.  This is not to imply
  2093.      all mail traffic between STadels and Citadel-86s should be
  2094.      restricted to a single bottleneck; systems local to each other should
  2095.      certainly retain their current direct links.  However, when a
  2096.      non-local STadel is the target of some mail, directing the mail to go
  2097.  
  2098.  
  2099.                                    -27-
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.      through the 'gateway' system may minimalize the work of all the
  2107.      sysops except the gateway sysop.  But this is only a speculative
  2108.      suggestion.
  2109.  
  2110.         As a general note, STadels can be listed in the domain maps and even
  2111.      exist as domain servers (such as undermind for GA).
  2112.  
  2113.         There are some limitations to the gateway.  The most important one
  2114.      which leaps to mind is that since STadel does not support the 'W'ho
  2115.      else feature of Citadel-86, any use of mail routing involving 'W'ho
  2116.      else (both explicit routing and Mail Forwarding) will result in
  2117.      delivery of the mail only to the primary recipient of the mail on
  2118.      the target system, and no one else.
  2119.      
  2120.         The following subsections detail what actions are necessary
  2121.      for supporting a gateway between C86Net RouteMail and STadel mail
  2122.      routing.
  2123.      
  2124.      VI.1 Outgoing mail routing
  2125.         In order to understand what we need to do in order to have an
  2126.      effective gateway, a rudimentary explanation of STadel mail routing
  2127.      is in order.  In brief, a mail message which is to be routed has a
  2128.      modified recipient field.  Rather than just being "Joe Blow", such
  2129.      a message is of the form "<system>![<system>!...]<username>".  In
  2130.      English, an STadel mail message is routed using the recipient field,
  2131.      which will consist of one or more system names separated by
  2132.      exclamation points.  The last name will be the recipient's name.
  2133.      An example might be "Msg Port!The_Land!sysop".  This also applies to
  2134.      domains.  For instance, "undermind.ga!cmc" is a valid address.
  2135.  
  2136.         The important point is STadel is dependent on the exact node
  2137.      Names* to be specified.  To use one infamous example, "Backfence" is not
  2138.      the same as "Backfence [MN]"; nor is it likely STadel sysops
  2139.      will be willing to use some of the more convoluted names in
  2140.      use on some Citadel-86 installations.  So, in order to use STadel
  2141.      mail routing, the exact names must be available in some form or
  2142.      another.  This is where things become laborious.  The sysop who
  2143.      wishes to have a gateway available into the the STadel net must do
  2144.      one of two things: either change all nodes in his nodelist so 
  2145.      the Name field matches whatever the STadels are using to designate
  2146.      your system, or create a file in your #ROOMAREA directory named
  2147.      ALIASES.SYS.  Each line in the file is in the form of
  2148.  
  2149.         <STadel name> <node name from your node list>
  2150.  
  2151.         Citadel-86 will use this list to translate as necessary from your
  2152.      own nodelist to the STadel list (and vice versa, in the next section).
  2153.      For instance, if you have the Minnesota system Class of 68s in your
  2154.      nodelist, and must route to it via STadels (rather than via C86Net
  2155.      RouteMail), you would have to have the line
  2156.      
  2157.         Class68 Class of 68s
  2158.  
  2159.         The first word in the line is the name of the STadel node in STadel
  2160.      lingo, and can ONLY consist of one word.  If the STadels are using
  2161.      spaces (very rare) in the some system name, then replace the spaces with
  2162.      underscores ('_').  The balance of the line contains your name for the
  2163.  
  2164.  
  2165.                                    -28-
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.      node -- that is, the name assigned in your nodelist.
  2173.  
  2174.         Note that if you really don't want to maintain an ALIASES.SYS file,
  2175.      all you need to do is modify your nodelist to use the same names
  2176.      as STadel sysops are using.  In this instance, you'd change 'Class
  2177.      of 68s' to 'Class68'.  This is highly recommended.
  2178.  
  2179.         These notes are also valid in the situation in which a Citadel-86 is
  2180.      routing to another Citadel-86, but must use one or more STadels in the
  2181.      route to it.  For instance, Test System in the Twin Cities and Circus in
  2182.      Edmonton are both Citadel-86 systems, but the link between the two
  2183.      systems is Secret Service ('secret'), an STadel.  In order for Test
  2184.      System to route to Circus (either for itself or for other systems), it
  2185.      must either have Secret Service listed as 'secret' in its node list, or
  2186.      it must have an entry in ALIASES.SYS which would look like
  2187.  
  2188.         secret Secret Service
  2189.  
  2190.      (assuming secret's name in Test System's node list is 'Secret Service'),
  2191.      and it must have Circus listed as 'Circus' in its nodelist (not
  2192.      'Circus_Edm') or an entry in ALIASES.SYS:
  2193.  
  2194.         circus Circus_Edm
  2195.  
  2196.         Also, in order for a system to be a gateway into STadel mail routing,
  2197.      the nodes(s) which will be used to gain access to the STadel mail routing
  2198.      must be marked as STadels (note this does not at all imply ALL STadels
  2199.      must be marked, however -- only those which the gateway system will be
  2200.      using to route into the STadel mail network).  This new field defaults
  2201.      to OFF when an entry is added to the nodelist, so if you need to use a
  2202.      system as the STadel gateway, you'll have to change that field.  Use
  2203.      RoutMail +manual to do so (make sure you have v1.7) -- the field should
  2204.      show up in the lower right hand column of values.
  2205.  
  2206.         Finally, domain mail can be routed in STadel land.  It'll simply
  2207.      be sent as "<system>.<domain>!<user>".
  2208.  
  2209.      VI.2 Incoming route mail
  2210.         There are similar problems in handling incoming mail, to wit, name
  2211.      mismatches.  Once again, ALIASES.SYS is used to help resolve these
  2212.      problems.  It cannot be guaranteed that STadels will use the same
  2213.      spellings as Citadel-86 systems will for nodenames, so entries in
  2214.      ALIASES.SYS will be scanned when necessary in order to find the
  2215.      'real' names (that is, the name the C86 is using) of systems
  2216.      when trying to decode incoming mail for delivery to those systems.
  2217.  
  2218.         This problem may include your OWN system.  Mail delivered to your
  2219.      own system directly by an STadel will almost certainly be of the form
  2220.      <system name>!<recipient>.  The problem is your system won't
  2221.      realize the mail is meant for your system unless it recognizes
  2222.      "system name" as being the same as your #nodeName parameter.  However,
  2223.      once again, STadels may not spell your #nodeName as you have yourself,
  2224.      or you may change yours' at some point.  Therefore, it is perfectly
  2225.      valid to have an entry in your ALIASES.SYS specifying how the STadels
  2226.      are spelling your #nodeName.  Simply make sure you spell your entry
  2227.      exactly how you spelled your #nodeName.  For instance, Test System's
  2228.      "formal" #nodeName is "C-86 Test System".  But STadels may choose to
  2229.  
  2230.  
  2231.                                    -29-
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.      simply have "Test System".  The entry in ALIASES.SYS would then
  2239.      be
  2240.  
  2241.         Test_System C-86 Test System
  2242.  
  2243.      VI.3 STadel considerations
  2244.         There are some other problems to be considered, and we're not
  2245.      sure we're aware of all of them.  The main problem is how to ensure
  2246.      mail being routed into the STadel mail system will make it to the
  2247.      target system.  STadel is apparently capable of some simple
  2248.      rerouting when necessary, but it is not automatic.  When attempting
  2249.      to set up a gateway in your area, you will probably have to work
  2250.      closely with the STadel sysop.  The reason for this is Citadel-86
  2251.      will only generate target paths that look like this:
  2252.      
  2253.         <gateway system name>!<target system name>!<username>
  2254.  
  2255.         This could prove a problem when the target system is actually
  2256.      several 'hops' away on the network, and in fact would result in
  2257.      the loss of the mail.  However, as I understand it, STadel sysops
  2258.      have some ability to cause such mail to be rerouted, in other words,
  2259.      replace the given path with a path more likely to succeed.  When
  2260.      working to set up a gateway which will be used for extensive mail,
  2261.      make sure to mention this concern to the other sysop.  This problem
  2262.      is not of as great a magnitude, however, when dealing with isolated
  2263.      STadels which simply wish to piggy-back onto C86Net RouteMail.
  2264.  
  2265.          Note that domain mail probably doesn't suffer from this problem.
  2266.  
  2267.      VI.4 Notes
  2268.  
  2269.         o Remember to set the STadel node in your list you'll be using to
  2270.      gate the STadel system as an STadel, using RoutMail +manual.  Not all
  2271.      STadels you net with, directly or indirectly, need this setting
  2272.      (although it doesn't hurt), only those which you'll be using to route
  2273.      mail to other systems.
  2274.  
  2275.         o Remember, each system in your nodelist has two flags associated
  2276.      with it, indicating whether you're willing to route mail to it.  They
  2277.      apply to STadel routing as well as C86Net RouteMail.   Make sure they
  2278.      are turned on for those nodes you're willing to route to/from.
  2279.  
  2280.         o Make sure the STadel sysop knows about your concerns regarding
  2281.      rerouting on his side.
  2282.  
  2283.         o There may be limited error detection available in Citadel-86 vis
  2284.      a' vis undeliverable mail.
  2285.  
  2286.      VII. CTDLCNFG.SYS Parameters
  2287.         There are several parameters in CTDLCNFG.SYS that help you control what
  2288.      Citadel-86 will do with the network.  All of these parameters were covered
  2289.      in the Citadel-86 Installation Manual, but we shall cover them again here.
  2290.  
  2291.         The #NETWORK parameter is the basic parameter that decides if you are a
  2292.      networking system or not.  A numeric value of 1 indicates that you are;
  2293.      0 indicates no.
  2294.  
  2295.  
  2296.  
  2297.                                    -30-
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.         The #RouteMail parameter allows you to select or deselect mail 
  2305.      routing.  If you set this parameter to 0, then you categorically refuse 
  2306.      to route any mail anywhere.  The default of this parameter is 1, however.
  2307.  
  2308.         The #NewNetPrivs lets you decide whether or not new users automatically
  2309.      gain net privileges on login.  1 indicates yes, 0 indicates no (a good
  2310.      paranoid value).
  2311.  
  2312.         The #NETAREA parameter indicates where CTDLNET.SYS and nearly all
  2313.      temporary (the only exception being domain files) network files should
  2314.      reside on your system.  It is just like #MSGAREA, etc., specifying a
  2315.      directory for the location of files.  CTDLNET.SYS may be large, depending
  2316.      on how many nodes you have and the values of two parameters that follow
  2317.      this one, but the temporary files very rarely exceed 1K, and usually are
  2318.      short-lived (except for the *.VEX files, which are always there, if they
  2319.      are there at all).
  2320.  
  2321.         #SHARED-ROOMS indicates the maximum number of rooms that you think
  2322.      you'll ever share with another system simultaneously.
  2323.  
  2324.         #NET_RECEPT_AREA designates the area on your system that files that
  2325.      were sent to you with the Send File facility (Section III.3.f) should be
  2326.      placed. This may be anywhere on your system.
  2327.  
  2328.         #NET_AREA_SIZE specifies the maximum number of bytes that may occupy
  2329.      the #NET_RECEPT_AREA directory at any one time, which provides you with
  2330.      a way of keeping your system from being flooded.
  2331.  
  2332.         #MAX_NET_FILE specifies the maximum size of any single file to be
  2333.      received from the network via the Send File option (see Section III.3.f).
  2334.      If you don't want monster files sent to you, here is your solution.
  2335.  
  2336.         #callOutPrefix is a string value that tells the modem to prepare to
  2337.      dial out.  For Hayes/compatibles, this is usually "ATDT".
  2338.  
  2339.         #callOutSuffix is a string value that tells the modem that all the
  2340.      information that it needs to dial has been sent to it.  For
  2341.      Hayes/compatibles, this is usually "\r".
  2342.  
  2343.          #DialOut300, #DialOut1200, #DialOut2400, #DialOut4800, #DialOut9600,
  2344.      #DialOut14400, and #DialOut19200 can each be used to override the value
  2345.      of #callOutPrefix.  This is useful with USR HST modems and their ilk.
  2346.  
  2347.      Appendix A: Other room-based Networks
  2348.  
  2349.      HengeNet: This network is for the StoneHenges.  The last news I heard
  2350.      was that the homebase of the Stonehenges, CKMCMS, was down.
  2351.  
  2352.      CitaNet: The exact nature of this network is not clear, but seems to be
  2353.      semi-manual and is used by the K2NE (Commodore 128) systems, along with
  2354.      one or two Citadel-86 systems and possibly others.  Homebase for this net
  2355.      is Vince Quaresima of The Jersey Devil ((609) 893-2152).
  2356.  
  2357.      MacCitadel: These systems have a network of some sort.  MacCitadel's
  2358.      home base is ??????????????
  2359.  
  2360.  
  2361.  
  2362.  
  2363.                                    -31-
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.      Appendix B: Temporary Files
  2371.  
  2372.         Citadel-86 generates and destroys temporary files in order to service
  2373.      C86Net.  All of these files are placed in the directory specified by the
  2374.      CTDLCNFG.SYS parameter #NETAREA, and most should not last past the next
  2375.      networking session once generated.
  2376.  
  2377.         Most are of the form <numeric>.<ext>.  The numeric value is the
  2378.      position that the relevant node occupies in CTDLNET.SYS; ext indicates the
  2379.      purpose of the temporary file.  The current ext values currently used are:
  2380.  
  2381.       ML  = Mail file
  2382.       RFL = Request Files
  2383.       SFL = Send Files
  2384.  
  2385.         Thus, the file 12.ML contains the data necessary to send net Mail> to
  2386.      the twelfth system on your netlist.
  2387.  
  2388.         Additionally, from time to time files of the form "R<num>.<num>" will
  2389.      appear and disappear from the directory.  The R means they are Route Mail 
  2390.      temporary files; the first 'num' refers to the node the mail is being 
  2391.      sent to on its way to its destination (the routing node), while the 
  2392.      second num is just a sequence (housekeeping) number for internal use.  
  2393.      Please avoid deleting these files, and don't try to read them - they are 
  2394.      private mail and should be treated as such.
  2395.  
  2396.         Domain Mail also requires temporary files, but they are confined to
  2397.      #DOMAINAREA, so don't worry about them too much unless some persist.
  2398.  
  2399.      Appendix C: Main C86Net
  2400.         The main C86Net is an international net with nodes scattered 
  2401.      throughout the United States and Canada.  Homebase for the main C86Net is 
  2402.      Test System @ (612) 470-9635, but there may be a system near you on the 
  2403.      net, particularly in the northern half of the United States.
  2404.  
  2405.     The following is a list of BBS packages known to be compatible, more
  2406.      or less, with C86Net.  In most cases these packages are derivative of
  2407.      Citadel-86.
  2408.  
  2409.     Citadel-86    (PClones)
  2410.     Citadel 68K   (Amiga)
  2411.     STadel        (Atari ST)
  2412.     NeoCitadel    (PClones)
  2413.     Citadel-86e   (PClones)
  2414.     Fortress      (PClones)
  2415.     <fnord>adel   (Atari ST)
  2416.     b0badel       (Atari ST)
  2417.     Asgard-86     (PClones)
  2418.     Citadel-86/TI (TI PC)
  2419.     Citadel:K2NE  (PClones)
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.                                    -32-
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.      Appendix D: RoutMail.Exe
  2437.         The RoutMail utility, as noted in UTIL3.MAN, can be used to edit the
  2438.      node list as well as ingest mail routing maps.  Simply type
  2439.  
  2440.         ROUTMAIL +manual
  2441.  
  2442.      and you will be presented (sooner or later) with a list of nodes which you
  2443.      may select using cursor keys.  Selecting one allows you to edit all (?)
  2444.      parameters associated with a node, except for the rooms shared.  Note
  2445.      that the node editing capabilities in Ctdl.Exe are NOT complete any
  2446.      longer, and some thought is being given to placing all responsibility for
  2447.      node editing in RoutMail.  In particular, the routing and STadel flags are
  2448.      only accessible via RoutMail as of this writing (this may change in the
  2449.      future, however).
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.                                    -33-
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.